Introduzione
Il controller è utilizzato per gestire la logica dell'applicazione. Normalmente un controller gestisce la logica relativa a un modello. Per esempio, se stai realizzando un sito per una panetteria online, avrai un RicetteController e un IngredientiController che gestiranno i modelli ricetta e ingrediente. In CakePHP, i controllers prendono il nome dei relativi modelli, al plurale.
Il modello Ricetta è controllato dal controller RicetteController, il modello Prodotto dal controller ProdottiController, e così via.
I controllers sono classi che estendono la classe di CakePHP AppController, che a sua volta estende la classe Controller. La classe AppController può essere definita in /app/app_controller.php, e può contenere metodi condivisi da tutti i controllers della tua applicazione. Estende la classe Controller, che è una classe standard di CakePHP.
I controllers includono tutti i metodi che normalmente chiameremo azioni. Le azioni sono dunque metodi del controller finalizzati a renderizzare le views (viste). Un'azione rappresenta un solo metodo del controller. CakePHP richiama le azioni di un determinato controller in base alle richieste provenienti dall'URL. Ritornando all'esempio della panetteria, il nostro RicetteController contiene le azioni mostra(), condividi() e cerca(). Il controller si trova in /app/controllers/ricette_controller.php contiene:
<?php
# /app/controllers/recipes_controller.php
class RecipesController extends AppController {
function mostra($id) {
//qui deve essere inserita la logica dell'azione..
}
function condividi($customer_id, $ricetta_id) {
//qui deve essere inserita la logica dell'azione..
}
function cerca($query) {
//qui deve essere inserita la logica dell'azione..
}
}
?>
<?php# /app/controllers/recipes_controller.phpclass RecipesController extends AppController {function mostra($id) {//qui deve essere inserita la logica dell'azione..}function condividi($customer_id, $ricetta_id) {//qui deve essere inserita la logica dell'azione..}function cerca($query) {//qui deve essere inserita la logica dell'azione..}}?>
Per imparare ad usare appieno le funzionalità dei controllers, passiamo ad esplorare alcuni attributi e metodi forniti da CakePHP.

login to add a comment