3.5.1 Introdução
Um controller (controlador) é usado para gerenciar a lógica para uma parte de sua aplicação. Mais comumente, controllers são usados para gerenciar a lógica de um único model(modelo). Por exemplo, se você está construindo um site para uma padaria online, você pode ter um ReceitasController e um IngredientesController gerenciando suas receitas e seus ingredientes. No CakePHP, controllers são nomeados de acordo com o model que manipulam, no plural.
O model Receita é manipulado pelo ReceitasController, o model Produto é manipulado pelo ProdutosController, e por aí vai.
Seus controllers de aplicação são classes que estendem a classe CakePHP AppController, a qual por sua vez estende a classe núcleo Controller. A classe AppController pode ser definida em app/app_controller.php e deve conter métodos que são compartilhados entre todos os seus controllers. A classe AppController estende o Controller que é uma classe padrão da biblioteca CakePHP.
Controllers podem incluir qualquer número de métodos que são geralmente referidos como actions (ações). Actions são métodos do controlador usados para mostrar views. Uma action é um único método de um controlador. O despachante do CakePHP chama actions quando uma requisição casa uma URL com uma action do controller. Retornando ao nosso exemplo da padaria online, nosso ReceitasController pode conter as actions ver(), compartilhar() e buscar(). O controller poderia ser encontrado em app/controllers/receitas_controller.php e poderia conter:
<?php
# /app/controllers/receitas_controller.php
class ReceitasController extends AppController {
function ver($id) {
// a lógica da action vai aqui...
}
function compartilhar($cliente_id, $receita_id) {
// a lógica da action vai aqui...
}
function buscar($query) {
// a lógica da action vai aqui...
}
}
?>
<?php# /app/controllers/receitas_controller.phpclass ReceitasController extends AppController {function ver($id) {// a lógica da action vai aqui...}function compartilhar($cliente_id, $receita_id) {// a lógica da action vai aqui...}function buscar($query) {// a lógica da action vai aqui...}}?>
Para que você possa usar o controller de forma mais efetiva em sua aplicação, vamos cobrir alguns dos principais atributos e métodos fornecidos pelos controllers do CakePHP.
