Senin, 17 September 2012

CI


CodeIgniter (CI) adalah salah satu framework PHP yang cukup populer, Bahkan bisa sangat populer karena sering dipakai di kalangan perusahaan IT dalam bidang pengembangan Web (Web Development). Tetapi sebelumnya, apa itu PHP Framework? Gampangnya framework adalah kumpulan fungsi-fungsi dan class untuk tujuan tertentu yang sudah siap pakai sehingga bisa lebih mempermudah pekerjaan pemrograman, tanpa harus reinvent wheel.
Kelebihan menggunkan Framework antara lain :
  • Mempercepat dan mempermudah pembangunan sebuah aplikasi PHP
  • Relatif memudahkan dalam proses maintenance karena sudah ada pola tertentu dalam sebuah framework (dengan syarat programmer mengikuti pola standar yang ada)
  • Umumnya framework menyediakan fasilitas-fasilitas yang umum dipakai sehingga kita tidak perlu membangun dari awal (misalnya validasi, ORM, pagination, multiple database, scaffolding, pengaturan session, error handling, dll
  • Lebih bebas dalam pengembangan jika dibandingkan CMS
Framework yang sering digunakan adalah CodeIgniter dan CakePHP. Adapun  keunggulan dan kelebihan kedua framework ini adalah
Kelebihan CI
  • Performa sangat cepat : salah satu alasan tidak menggunakan framework adalah karena eksekusinya yang lebih lambat daripada PHP from the scracth, tapi Codeigniter sangat cepat bahkan mungkin bisa dibilang codeigniter merupakan framework yang paling cepat dibanding framework yang lain.
  • Mendukung PHP4 dan PHP5
  • Konfigurasi yang sangat minim (nearly zero configuration) : tentu saja untuk menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukan konfigurasi dengan mengubah beberapa file konfigurasi seperti database,php atau autoload,php. namun untuk menggunakan codeigniter dengan setting standard perlu melakukan  sedikit setting file pada folder config.
  • Dokumentasi yang sangat lengkap : Setiap paket instalasi codeigniter sudah disertai user guide yang sangat bagus dan lengkap untuk dijadikan permulaan, serta mudah untuk di pahamii. Ditambah lagi oficial video tutorial membuat blog dalam 20 menit yang disediakan di situsnya, untuk mengaksesnya  bisa menggunakan quick time atau bisa juga mendownload video yang sudah diupload pada youtube.com.
  • Mudah dipelajari : Mungkin pengaruh dokumentasi yang bagus sehingga codeigniter mudah untuk dipelajari, atau memang framework ini benar-benar mudah dipelajari. Adapun framework lainnya yang lebih powerfull seperti Zend, Symfony, dan Prado, namun lebih sulit untuk dipelajari.
  • Compatible dengan banyak hosting : Tidak seperti kebanyakan framework lain yang hanya bisa berjalan di PHP 5, codeigniter bisa dijalan dengan mudah pada PHP 4, meskipun saat ini sudah banyak hosting yang menggunakan PHP 5. Tapi ada beberapa yang masih menggunakan PHP 4. Juga codeigniter tidak menggunakan PEAR atau tool CLI lainnya, sehingga memberi keleluasaan bagi yang tidak mempunyai akses ke shell pada hosting.
Kekurangan  CI
·         Meskipun Open Source CodeIgniter tidak dikembangkan oleh komunitas tapi oleh EllisLab (pengembang Expression Engine) sehingga membuat update dari core engine tidak secepat Framework yang dikembangkan oleh komunitas.
  • Jika terjadi error yang berhubungan dengan Framework, mau tidak mau kita harus searching dan browsing masalah tersebut.
  • Bukan untuk kelas enterprise, meskipun bisa di extend dengan tersedianya banyak library dari komunitas.
  • Tidak ada support, tentu saja tidak ada support karena open source. Sebagai gantinya anda harus sering-sering mampir di forum-forum codeigniter.
 Apa Itu XML-RPC Server?
Server xmlrpc berfungsi untuk mengatur lalu lintas data yang masuk dan keluar, menunggu sebuah request dan meneruskannya untuk diproses oleh fungsi yang sesuai. Untuk membuat Server xmlrpc,sobat harus menginisialisasi class dari server xmlrpc pada controller, seperti diperlihatkan pada contoh di bawah ini (sudah dibahas pula pada posting sebelumnya):
$this->load->library(‘xmlrpc’);
$this->load->library(‘xmlrpcs’);
Beginilah kira-kira contoh lengkap cara membuat server xmlrpc:
$this->load->library('xmlrpc');
$this->load->library('xmlrpcs');

$config['functions']['new_post'] = array(‘function’ => ‘My_blog.new_entry‘),
$config['functions']['update_post'] = array(‘function’ => ‘My_blog.update_entry‘);
$config['object'] = $this;
$this->xmlrpcs->initialize($config);
$this->xmlrpcs->serve();
Pada contoh diatas diperlihatkan bahwa terdapat variable $config yang merupakan array multidimensi, data yang dimasukan ke dalam array tersebut adalah isi posting ketika sebuah post baru dibuat untuk fungsi new_post dan isi posting ketika posting lama di update untuk update_post.
Kunci ‘object’ pada contoh diatas adalah kunci khusus yang dilewatkan bersama class yang diinstansiasi. Kunci ini penting, terutama ketika method yang di maping bukan merupakan CodeIgniter super object.
Dengan kata lain, jika client xmlrpc mengirim request kepada method new_post, server xmlrpc akan me-load class My_blog dan memanggil fungsi New_entry yang ada didalamnya.Sedangkan,  jika request tersebut ditujukan kepada method update_post maka server akan me-load class My_blog dan memanggil fungsi Update_entry yang ada didalamnya.
Nama fungsi yang ditulis pada contoh diatas adalah nama fungsi yang bisa sobat definisikan sendiri. Akan lain ceritanya jika sobat menggunakan API yang terstandarisasi seperti blogger API atau MetaWeblog API, dalam hal ini sobat harus menggunakan nama fungsi yang telah mereka (Blogger dan MetaWeblog) definisikan.
Ada dua kunci tambahan yang bisa anda gunakan ketika menginisialisasi sebuah class server. Diantaranya fungsi debug yang bisa sobat set dengan nilai TRUE untuk mengijinkan debugging. Yang kedua adalah fungsi xss_clean yang bisa diset FALSE agar program tidak mengirimkan data untuk dilewatkan pada library xss_clean.
Memproses Request di Server
Ketika suatu server xmlrpc menerima request dari client, suatu fungsi/method akan dijalankan.
Dengan menggunakan request pada contoh diatas, ketika method new_post di request, server akan mencari sebuah class dengan format seperti pada contoh di bawah ini:
class My_blog extends CI_Controller {
function new_post($request)
{
}
}
Variabel $request adalah sebuah object yang dikompilasi oleh server. Variabel tersebut berisi data yang dikirim oleh xmlrpc client. Dengan menggunakan object ini sobat akan memiliki akses untuk me-request parameter yang memungkinkan sobat untuk memproses sebuah request. Ketika request telah diproses sobat akan secara otomatis mengirimkan respon kepada client.
Di bawah ini adalah contoh nyata cara memproses sebuah respon dengan menggunakan Blogger API. Salah satu method yang ada di Blogger API adalah getUserInfo(). Dengan menggunakan method ini, client dapat mengirimkan username dan password ke server, sebagai responnya server akan mengirim balik beberapa informasi mengenai user yang bersangkutan (Seperti Nickname, User ID, email dll). Seperti inilah kira-kira fungsi tersebut:
class My_blog extends CI_Controller {
function getUserInfo($request)
{
$username = ‘smitty’;
$password = ‘secretsmittypass’;

$this->load->library(‘xmlrpc’);
$parameters = $request->output_parameters();
if ($parameters['1'] != $username AND $parameters['2'] != $password)
{
return $this->xmlrpc->send_error_message(’100′, ’Invalid Access’);
}

$response = array(array(‘nickname’  => array(‘Smitty’,'string’),
‘userid’    => array(’99′,’string’),
‘url’       => array(‘http://yoursite.com’,'string’),
‘email’     => array(‘jsmith@yoursite.com’,'string’),
‘lastname’  => array(‘Smith’,'string’),
‘firstname’ => array(‘John’,'string’)
),
‘struct’);

return $this->xmlrpc->send_response($response);
}
}

Catatan:
Fungsi Output_parameters() mengembalikan nilai berupa array yang sesuai dengan request parameter yang dikirimkan oleh client. Pada contoh diatas, output parameter akan berupa username dan password. Jika username dan password yang dikirimkan oleh user tidak valid maka, sebuah pesan error akan ditampilkan dengan menggunakan fungsi Sent_error_message().
Memformat Respon
Seperti halnya request, respon juga harus diset kedalam bentuk berupa array. Namun tidak seperti request, respon adalah sebuah array yang hanya terdiri dari sebuah item, item itu sendiri dapat berupa sebuah array yang didalamnya terdapat beberapa item lain. Contohnya adalah sebagai berikut:
$response = array(‘Response data’, ‘array’);
Namun demikian, sebuah respon biasanya perlu mengirimkan beberapa informasi. Agar dapat melakukan ini, sebuah respon bisa diinisialisasi ke dalam bentuk array kira-kira seperti ini:
$response = array (
array(
‘first_name’ => array(‘John’, ‘string’),
‘last_name’ => array(‘Doe’, ‘string’),
‘member_id’ => array(123435, ‘int’),
‘todo_list’ => array(array(‘clean house’, ‘call mom’, ‘water plants’), ‘array’),
),
‘struct’
);

Perhatikan bahwa array diatas diformat dalam bentuk struct. Struct adalah tipe data yang paling umum digunakan untuk mendefinisikan sebuah respon.
Mengirimkan Error Respon
Jika sobat perlu mengirimkan error respon pada client, sobat bisa menggunakan kode seperti pada contoh di bawah ini:
return $this->xmlrpc->send_error_message(’123′, ‘Requested data not available’);
Parameter pertama menunjukan nomor dari kesalahan (user defined), sedangkan parameter kedua adalah pesan kesalahannya. reast-} � - a p�* ��+ es New Roman"'> : Tidak seperti kebanyakan framework lain yang hanya bisa berjalan di PHP 5, codeigniter bisa dijalan dengan mudah pada PHP 4, meskipun saat ini sudah banyak hosting yang menggunakan PHP 5. Tapi ada beberapa yang masih menggunakan PHP 4. Juga codeigniter tidak menggunakan PEAR atau tool CLI lainnya, sehingga memberi keleluasaan bagi yang tidak mempunyai akses ke shell pada hosting.







1 komentar:

  1. apa ini harus membuat databasenya lagi?
    atau lngsung bisa jalan?
    terima kasih

    BalasHapus