2.4.3 Convenciones de Controladores
Los nombres de las clases de los controladores son plurales, CamelCased, y Terminan con ‘Controller’. PeopleController, BigPeopleController y, ReallyBigPeopleController son ejemplos de nombres de controladores.
La primera función para un controlador debe de ser la función index(). Cuando la petición especifica un controlador pero no una acción, el comportamiento por defecto de CakePHP es renderizar la función index() de dicho controlador. Ejemplo, una petición a http://www.example.com/apples/ llama a la función index() de el controlador ApplesController, una petición a http://www.example.com/apples/view llama a la función view() de el controlador ApplesController.
También puedes cambiar la visibilidad de las funciones de los controladores en CakePHP anteponiendo un guión bajo al nombre de la función en el controlador.
<?phpclass NewsController extends AppController {function latest() {$this->_findNewArticles();}function _findNewArticles() {//Lógica para encontrar los nuevos articulos.}}?>
De esta forma, la petición a http://www.example.com/news/latest/ será accedida de forma normal, pero una petición a http://www.example.com/news/_findNewArticles/ será rechazada como error debido al uso del guión bajo en el nombre de la función.
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”.
Fuente: book.cakephp.org