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.
$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.
apa ini harus membuat databasenya lagi?
BalasHapusatau lngsung bisa jalan?
terima kasih