2.2 Bentuk Umum Request di CakePHP
Kita telah melewati dasar-dasar dalam CakePHP, jadi kita lanjutkan saja ke pembahasan bagaimana setiap obyek bekerja bersama untuk memenuhi sebuah request. Melanjutkan contoh reqeuest sebelumnya, coba bayangkan si Joko baru saja mengklik taut "Beli buku sekarang!" pada aplikasi CakePHP.


Gambar 2. Bentuk Request Cake pada Umumnya.
Hitam = element yang diperlukan, Abu-abu = element opsional, Biru = callback
- Joko mengklik taut ke http://www.example.com/books/beli, dan peraba (browser) si Joko membuat request ke web server Anda.
- Route akan menterjemahkan URL untuk mengekstrak parameter dari request, yaitu: controller, action dan argumen lainnya yang mempengaruhi logik bisnis saat ruquest.
- Dengan menggunakan route, URL yang direquest dipetakan ke action di controller (sebuah method dalam class controller). Dalam kasus ini method beli() di dalam class BooksController. Callback beforeFilter() di controller dipanggil sebelum logic action controller dieksekusi.
- Controller dapat menggunakan model untuk memperoleh data aplikasi. Dalam contoh ini, controller menggunakan model untuk mengambil data pembelian terakhir Joko dari database. Penggunaan model tidaklah diperlukan, tapi semua controller CakePHP secara inisial membutuhkan setidaknya satu model.
- Setelah model memperoleh data, model akan memberikannya ke controller. Callback untuk model dapat dipanggil.
- Controller dapat menggunakan component untuk memanipulasi data atau melakukan operasi lainnya (misal untuk manipulasi session, autentifikasi, atau mengirim email).
- Saat controller selesai menggunakan model dan component untuk menyiapkan data, controller dapat memberikan data tersebut ke view dengan pemanggilan method set(). Callback di controller dapat dieksekusi sebelum data dikirim. Kemudian logik di view dieksekusi, element dan/atau helper dapat disertakan (include). Secara default, view dirender di dalam layout.
- Kemudian callback controller tambahan (seperti afterFilter()) dapat dipanggil. Setelah itu kode view yang dirender diberikan ke peraba si Joko.
See comments for this section
