CakePHP adalah salah satu php framework yang juga menarik untuk dipelajari, selain Codeigniter. Saya, dari sekian php framework yang ada, khusus memperdalam pengetahuan dan pengertian saya dalam dua hal ini, sambil terus mempelajari php.
CakePHP, lebih strict dan paket standarnya lebih "gembrot" sedikit dari codeigniter. Saat pertama kali menggunakannya, saat membuat blog berdasarkan "Panduan membuat blog CakePHP", saya menemukan cakePHP lebih susah dipahami dan Codeigniter terlalu loosy(?).
Entahlah, nanti frameworks mana yang cocok dan berjodoh dengan saya. Eets, jangan bilang-bilang ya kalau saya selingkuh :-)
Meskipun masih belajar, boleh dong saya membagi pengetahuan saya dengan anda, lumayan buat tabungan akhirat.
Susunan Direktori CakePHP
Saat pertama kali diekstrak setelah saya download dari http://cakephp.org, saya mendapatkan struktur direktori yang tersebar dalam 3 direktori utama.
cake, yang mengandung semua library dan core cakePHP, silahkan melihat-lihat, tetapi jangan melakukan perubahan apapun disini, kecuali anda sudah pakar cakePHP.
[caption id="" align="aligncenter" width="500" caption="perbandingan direktori cakephp dan codeigniter"]
app, direktori kerja anda. Disini ada empat folder yang perlu mendapatkan perhatian anda. Direktori config, sesuai namanya, semua konfigurasi aplikasi anda ada disini. Direktori controllers, tempat anda meletakkan controller anda. Models, tempat anda meletakkan file-file model anda. Dan folder views, tempat kita meletakkan file-file view kita.
Konfigurasi awal CakePHP
Untuk berjalan baik dan maksimal, cakePHP 1.2 (versi download saya) membutuhkan PHP minimal versi 4.x.x, server Apache dengan modul rewrite diaktifkan, dan salah satu database server, bisa Mysql, PostreSQL, atau lainnya.
Setelah anda mengekstrak cakePHP ke root web server anda, anda langsung bisa menggunakannya, silahkan akses ke alamat http://localhost/folder-instalasi. Jika anda menemukan halaman selamat datang standar cakePHP, berarti web server anda sudah cocok untuk cakePHP. Jika tidak, kemungkinan web server anda tidak mengaktifkan modul mod rewrite Apache.
Sesuai pesan yang tampil, diharapkan anda merubah permission folder app/tmp agar bisa ditulisi. Klik kanan folder yang dimaksud, rubah permission yang sesuai.
Yang kedua, meskipun bersifat opsional, jika anda akan menggunakan database, silahkan me-rename file database.php-default ke database.php di dalam folder app/config, lalu mengisikan informasi database anda, sesuai contoh.
Yang ketiga, ini juga bersifat opsional, di file app/config/core.php tambahkan beberapa karakter baru di baris security salt.
Konvensi Penamaan CakePHP
Seperti yang saya katakan tadi, cakePHP lebih strict dari codeigniter. Ketatnya cakePHP dalam penamaan model, controller dan view serta tabel-tabel database-nya bukan tanpa alasan. Saya mulai dari penamaan controller.
Controller HARUS diberi nama dengan format jamak (plural), CamelCased dan menambahkan suffix Controller, seperti contoh: BooksController, GreenFrogsController. Sedangkan nama file-nya mengikuti nama contoller dan harus dalam huruf kecil dan dipisahkan garis bawah antar katanya, seperti contoh: books_controller.php, green_books_controller.php.
Model diperlukan jika anda mengolah database. CakePHP dalam desainnya, mendesain satu model untuk satu tabel. Karena itu penamaan model HARUS singular (single), CamelCased dan disarankan sama dengan nama tabel yang dikelolanya agar mendapatkan automagic loading variable, function dan sebagainya.
Contoh nama model yang valid adalah Blog (nama tabel blogs), Shoe (nama tabel shoes).
Untuk view, file-filenya diletakkan di dalam folder tersendiri sesuai nama controller-nya. Misalkan, posts untuk PostsController. Sedangkan nama file-filenya sesuai nama action (function) yang didefinisikan di controller yang bersangkutan.
Tentang CakePHP default Pages
Anda tahu, halaman default yang menyapa saat pertama mengakses cakePHP di kontrol oleh PagesController yag didefinisikan di file cake/libs/controller/pages_controller.php
PagesController meminta action index() untuk menampilkan cake/libs/view/pages/home.ctp, menyapa siapa saja yang mengakses cakePHP pertama kali.
Sesuai intruksi, anda bisa merubah isi halaman ini dengan membuat file home.ctp di app/view/pages.
Bagaimana? tambah penasaran? Atau tidak mengerti sama sekali?
Silahkan berkunjung ke situs cakephp.org dan mengikuti tutorial 15 menit membuat blog-nya, meskipun baru setengah ditranslasi ke bahasa Indonesia.

5 Comments
Wah.. penjelasannya lengkap nih,,, aku jadi semakin semangad buat menambah ilmu untuk menguak lebih dalam si 'kekpHp' ini.. :D
ReplyDeleteWell, salam kenal aja deh :)
@mastanto
ReplyDeleteJangan lupa berbagi ilmunya di sini ya mas
klo masalah framework MVC lbh mantap pake ruby on rails kyknya
ReplyDeletemusti belajar neh ... bwt nambah ilmu
ReplyDeletebingung..perlu nyari bukunya nih....pengen blajar...kayaknya seru...
ReplyDelete