3.5.1 Pengenalan
Sebuah controller digunakan untuk mengatur logika dari sebuah bagian di dalam aplikasi anda. Secara umum, controller digunakan untuk mengatur logika dari sebuah single model. Sebagai contoh, jika anda membuat sebuah situs online bakery, anda mungkin mempunyai RecipesController dan IngredientsController yang mengatur recipes anda dan ingredient-nya. Di dalam CakePHP, sebuah controller dinamakan sesuai dengan model yang ditanganinya, dalam bentuk plural (dalam tatanan bahasa Inggris, misal : Car -> Cars, Category -> Categories).
Model Recipe ditangani oleh RecipesController, sedangkan Model Product ditangani oleh ProductsController, begitu seterusnya.
Controller di dalam aplikasi anda adalah class - class yang diturunkan (di extend) dari class AppController dari CakePHP, dimana class ini juga diturunkan dari class Controller inti (utama). Class AppController dapat didefinisikan di /app/app_controller.php dan di dalamnya bisa diletakkan methods yang bisa diakses dari semua controller di dalam aplikasi. Class ini diturunkan dari class Controller yang merupakan standar library CakePHP.
Controller bisa menampung sebanyak mungkin method. Method ini sering juga disebut sebagai actions. Actions adalah method dari controller yang digunakan untuk menampilkan views. Sebuah action adalah sebuah method tunggal dari sebuah controller. Dispatcher CakePHP memanggil actions ketika sebuah permintaan URL sama dengan sebuah action di dalam controller. Dengan mengambil contoh situs online bakery di atas, RecipesController bisa saja memiliki actions view(), share dan search(). Controller tersebut terletak di /app/controllers/recipes_controller.php dan mempunyai isi :
<?php
# /app/controllers/recipes_controller.php
class RecipesController extends AppController {
function view($id) {
//action logic goes here..
}
function share($customer_id, $recipe_id) {
//action logic goes here..
}
function search($query) {
//action logic goes here..
}
}
?>
<?php# /app/controllers/recipes_controller.phpclass RecipesController extends AppController {function view($id) {//action logic goes here..}function share($customer_id, $recipe_id) {//action logic goes here..}function search($query) {//action logic goes here..}}?>
Untuk memenuhi kebutuhan penggunaan controller secara efektif di dalam aplikasi anda, kita akan membahas beberapa core attributes dan method yang disediakan oleh controller dari CakePHP.
