Cake PHP (day 1)

cake

Huff…. setelah beberapa hari ini bingung menentukan framework yang akan dipelajari untuk membuat sebuah rapid development application (sebuah aplikasi yang dengan mudah dikembangkan dan dievaluasi), akhirnya cakePHP menjadi salah satu framework yang mampir sejenak di otakku (sebelumnya sudah ada beberapa framework, dan aku merasa mereka terlalu rumit, atau bahkan meminta banyak requirement…hiks. Ada mojavi, seagull, dan prado. Yang terakhir ini memerlukan PHP 5 supaya bisa berjalan dengan baik).

cakePHP (http://www.cakephp.org) pada awalnya menarik perhatianku karena lumayan ringan (sekitar 400 kB) dan dokumentasinya yang lumayan lengkap. Salah satu hal yang musti diperhatikan saat kita akan memilih framework opensource untuk memulai membuat sebuah aplikasi adalah kerapian dokumentasinya (manual dan API). Tanpa dokumentasi, framework akan sangat rumit untuk digunakan, apalagi dikembangkan. Selain alasan di atas, tentu ada kerjaan yang harus segera rampung, dan cilakanya kerjaan itu make’ cake PHP sebagai frameworknya ….

Beberapa hal yang kemarin menjadi catatan di otakku :

Scaffolding : fitur khusus cake. Sebagaimana namanya, scaffolding adalah kerangka yang memudahkan developer untuk membangun controller sesuai dengan struktur database yang ada. Scaffolding akan mengenerate form sesuai dengan susunan field database.

Bake : memudahkan developer untuk mengenerate code berdasarkan scaffolding yang ada.

Setelah itu kita sedikit mendalami apa yang disebut dengan MVC atau Model,View, Controller. Pengembangan aplikasi php dengan MVC ini jauh lebih robust dan lebih mudah untuk dimaintain daripada pengembangan aplikasi dengan paradigma tradisional (saat awal-awal kita mendisain sebuah aplikasi PHP, dengan mencampur mentah-mentah code HTML dan code PHP)

Model : segala sesuatu (access point) yang berhubungan langsung dengan database. Model menyediakan berbagai macam fungsi untuk mengelola record-record database. Model juga akan mengelola relasi antar database. Beberapa fungsi built-in sudah disediakan oleh cake untuk mempermudah developer mengembangkan aplikasi sesuai dengan keinginannya. Validasi data juga disediakan oleh model. Di model ada variabel khusus yang memungkinkan kita untuk switch database tanpa harus menambah atau mengganti file konfigurasi database yang ada.
Dengan kata lain, model adalah sebuah wujud pengolahan / link database dalam bentuk source code database. Asosiasi antar tabel dalam database akan dengan sangat mudah diwujudkan dengan menghubungkan model-model yang sudah dibuat. Tentu ada beberapa konvensi penulisan dalam variabel, nama file, untuk memudahkan cake melakukan generasi model yang kita inginkan. Beberapa konvensi penulisan yang ada misalnya berlaku untuk

1. Foreign Keys: [singular model name]_id. contoh : “post_id”.
2. Table Names: [plural object name]. contoh : posts, authors
3. Model Names: [CamelCased, singular form of table name]. Nama model untuk tabel”posts” adalah”Post”, dan nama model untuk tabel “authors” adalah “Author”.

Sebagaimana disebutkan di atas, Model akan membentuk asosiasi antar tabel, sebagaimana struktur tabel yang diinginkan oleh developer.CakePHP mendukung empat buah asosiasi :

1. hasOne
Relasi antar model, atau relaasi one to one antara dua model. Contoh : relasi antara model User dan model Post. Masing-masing model harus mendefinisikan model yang berelasi dengannya.
2. hasMany
Relasi antara sebuah model, dengan dua model yang lain. Misal : relasi antara model User-Post dan model User-Comment. Bisa juga disebut relasi one to many
3. belongsTo.
Merupakan kebalikan dari hasMany. Bisa juga disebut relasi many to one. Dalam hal ini, model Comment adalah belongsTo model User.
4. hasAndBelongsToMany (HABTM)
Relasi ini sering dikenal dengan relasi Many To Many. Relasi antar dua tabel ini membutuhkan sebuah tabel normalisasi. Contoh : model Tag dan model Post. Ada beberapa konvensi penamaan tabel normalisasi yang lumayan strik di sini. Silahkan mengacu pada referensi penamaan tabel normalisasinya.

Oke… selesai hari pertama (kamis kemaren, melek sampe jam 00.30)
Huahhh …bobok dulu ….

Be Sociable, Share!
Categories: CakePHP

5 Comments

  • Aziz says:

    wah, makanan sehari-hariku tuh cakephp.
    Rd bloggery juga pake cakephp

  • paydjo says:

    sip akhirnya ada jg tempet ngobrolin “roti pehape”

  • warsito says:

    saya dah donlot cakephp dari beberapa bln lalu, tapi sampai sekarang blm tahu cara makenya…

    syukurlah sekarang ada Pak Sunu

  • massunu says:

    @warsito
    Matur nuwun atas apresiasinya, mas. Saya juga pemula koq mas, jadi kalo mas Warsito ada artikel dan ide-ide menarik silahkan berbagi juga. Insya Allah saya akan setia membaca karya-karya Mas Warsito …

  • eko says:

    ass. wr.sb.
    Mas. Sunu, perkenalkan nama saya eko wibowo k, saya bekerja pada perus. swasta sebagai tech. support dan network admins, saat ini saya sedang belajar php (sudah dikursuskan sama company) dan diharapkan saya bisa membuat project” intranet.
    setelah mencoba googling kemana” dan mendapatkan recomendasi cakephp, saya akhirnya menginstall pada comp. (xampp+cakephp) dan tahapannya sudah saya ikuti hingga terakhir ada konfirmasi untuk database.
    yang jadi masalah adalah kenapa ketika saya mencoba membuat script sederhana (www.sitepoint.com: your first bite) koq nggak jalan yach padahal waktu install sudah sesuai dengan petunjuk dari documentasi cakephp.
    dan kalau boleh apakah ada petunjuk insatllasi versi indonesianya dari Mas. Sunu, sekalian contoh scaffoldingnya yang sederhana gitu…he3x.
    maaf mas, biasa baru belajar nech.
    thx’s wass. wr. wb.
    eko wibowo k

Leave a Reply