2.4.3 Convenciones de Controladores
Los nombres de las clases de los controladores son en plural, con formato CamelCased, y Terminan en Controller. PersonasController y UltimosArticulosController son ejemplos de nombres convencionales de controladores.
El primer método que escribas para un controlador debe de ser el método index(). Cuando la petición especifica un controlador pero no una acción, el comportamiento por defecto de CakePHP es ejecutar el método index() de dicho controlador. Por ejemplo, una petición de http://www.example.com/apples/ se corresponde con la llama al método index() del controlador ApplesController, mientras que http://www.example.com/apples/view se corresponde con una llamada al método view() del controlador ApplesController.
También puedes cambiar la visibilidad de los métodos de los controladores en CakePHP anteponiendo al nombre del método guiones bajos. Si un método de un controllador comienza por un guión bajo, el método no será accesible diretamente desde la web, sino que estará disponible sólo para uso interno. Por ejemplo:
<?php
class NoticiasController extends AppController {
function ultimas() {
$this->_buscaNuevosArticulos();
}
function _buscaNuevosArticulos() {
//Lógica para encontrar los nuevos articulos.
}
}
?>
<?phpclass NoticiasController extends AppController {function ultimas() {$this->_buscaNuevosArticulos();}function _buscaNuevosArticulos() {//Lógica para encontrar los nuevos articulos.}}?>
Mientras que la página http://www.example.com/noticias/ultimas/ está accesible de manera normal, si alguien intenta acceder a la página http://www.example.com/noticias/_buscaNuevosArticulos/ obtendrá un error porque el nombre del método está precedido por un guión bajo.
2.4.3.1 Consideraciones de URL para nombres de controladores
Como se puede ver, los controladores con un nombre simple (de una sola palabra) pueden ser fácilmente mapeados a una url en minúsculas. Por ejemplo, ApplesController (que se define en el archivo 'apples_controller.php') y accedido desde http://example.com/apples.
Por otro lado múltiples combinaciones de palabras pueden ser transformadas automáticamente en un mismo nombre de controlador:
- /redApples
- /RedApples
- /Red_apples
- /red_apples
Todas resuelven la acción index de controlador RedApples. sin embargo, la convención es que las urls sean en minúsculas y separadas con guión bajo, por lo tanto /red_apples/go_pick es la forma correcta de acceder a la acción. RedApplesController::go_pick.
Para mas información sobre CakePHP URLs y sus parametros, ver Configuración de Rutas.
