Oleh: kod34fr33 | 6/Juni/2007

cakePHP bagian 1

hanya sebagai pengantar. Selengkapnya dapat dilihat langsung di manualnya.

I. struktur folder

/root
  /cake
  /app
    /config
    /controllers
    /views
    /models
    /webroot

penjelasan:
[1] cake/ berisi core library2 cakePHP framework.
[2] app sebagai folder root untuk menampung berbagai objek spesifik aplikasi web kita
[3] app/config berisi configurasi umum untuk cake php. diantaranya: core.php dan database.php
[4] app/controllers berisi file php yang spesifik memproses business logic aplikasi kita
[5] app/views berisi file php-html untuk antar muka (tampilan) aplikasi web dengan user
[6] app/models berisi file php yang spesifik memproses segala sesuatu dengan tabel database
[7] app/webroot berisi objek-objek html yang dapat diakses oleh publik (image, css, javascript).

tips:
[1] Folder cake/ dapat dishare antar aplikasi. jadi jika kita memiliki dua aplikasi web berbasis cakePHP, anda cukup memisahkan folder /cake ke folder lain yang umum dan mensharenya di aplikasi2 web, dengan cara mensetnya di file app/webroot/index.p (see manual for detail)
[2] Dalam manual disebutkan, untuk produksi lebih baik, folder cake/ app/ dan webroot/ dipisahkan untuk keperluan keamanan. (cake/ dipisahkan bila nantinya ada aplikasi lain yang berbasis cakePHP dapat dishare. app/ dipisahkan agar user tidak dapat mengakses langsung. webroot/ = htdocs)

II Naming convention
penamaan file dan class sangat penting di cakePHP. karena menurut saya, penamaan file/class ini yang membuat keajaiban di cakePHP terjadi.
Akan tetapi penamaan file/class ini, dapat memusingkan anda, apalagi jika anda tidak menguasai native english, karena penamaan file/class di cakePHP mengharuskan adanya plural (jamak) dan singular dan hanya tersedia untuk bahasa inggris.
[1] Model :
(a) penamaan file : disimpan di folder app/models/, singular (bukan jamak), antar kata disambung dengan garis bawah, ekstensi file: .php
contoh: Product.php; menu_item.php
(b) nama kelas : singular (bukan jamak), camel cased (huruf besar di setiap awal kata), harus extends AppModel class
contoh: class Product extends AppModel ; class MenuItem extends AppModel
(c) nama kelas = nama tabel. akan tetapi nama tabel harus dalam bentuk plural (jamak).
contoh: class Product = products table ; class MenuItem = menu_items table

[2] Controller :
(a) penamaan file : disimpan di dalam folder app/controller/, plural (jamak), antar kata disambung dengan garis bawah, file diakhiri dengan _controller.php
contoh: products_controller.php ; menu_items_controller.php
(b) penamaan class : plural (jamak), camel cased (huruf besar di setiap awal kata), diakhiri dengan Controller, harus extends AppController
contoh: class ProductController extends AppController ; class MenuItemsController extends AppController

[3] Views.
berhubung views bukan dalam bentuk class, maka yang pasti masalah hanya ada di penamaan file : disimpan di folder app/views/<nama controller>/, harus sama dengan action,huruf kecil semua, berakhiran .thtml

[4] Struktur URL : http://domain/controller/action/param/param/…

[5] database : setiap tabel diharapkan mempunyai field bernama ‘id’ yang bertipe integer auto increment, bila tabel berelasi dengan tabel lain, maka harus mempunyai field bernama ‘_id’
contoh: tabel ‘mothers’ dan tabel ‘children’ sesuai konvensi, sebagai berikut:
mothers dan children masing mempunyai field ‘id’
bila berelasi setiap child mempunyai mother, maka di tabel children harus mempunyai ‘mother_id’

langsung pake contoh aja biar tidak terlalu bingung.
sebagai contoh: http://www.cakephpapp.com/users/list

jadi untuk mengakses url tersebut, normalnya, yang dibutuhkan adalah sebagai berikut :
(a) database :
users table
(b) file inti :
app/models/user.php (yang didalamnya berisi class User extends AppModel)
app/controller/users_controller.php (yang didalamnya berisi class UsersController extends AppController dan class tersebut mempunyai function list() )
app/views/users/list.thtml

sekian dulu.. besok dilanjutkan detil di model, controller dan views.

catatan: ada satu hal penting mengenai cakePHP selain naming convention, tapi saya bingung bagaimana menjelaskannya. yaitu : di cakePHP, semua di override. ini sebabnya mengapa cake core library (folder cake/) bisa di share antar aplikasi, dsb dsb.. bila anda bingung tidak masalah, bila anda membuat aplikasi web anda akan mengerti.


Tanggapan

  1. Mantap..bos..
    tapi sayangnya 95% programer php banyak ngak make MVC Framework kayak cake..

    http://www.sourcerally.net/regin/8-The-PHP-coder%27s-top-10-mistakes-and-problems

  2. makasih atas penjelasannya
    sangat membantu


Beri tanggapan

Your response:

Kategori