Контроллер используется для управления логикой части вашего приложения. Чаще всего, контроллеры используют для управления логикой отдельной модели. Например, если вы создаете сайт для онлайн пекарни, то вам необходимо создать RecipesController и IngredientsController, управляющие вашими рецептами и компонентами рецептов соответственно. В CakePHP контроллер именуют как модель, которой он управляет, только во множественном числе. Моделью Recipe управляет контроллер RecipesController. Модель Product управляется контроллером ProductsController. И так далее.
Контроллеры вашего приложения – это классы, которые расширяют AppController class, который в свою очередь, расширяет класс ядра Controller class.
Класс AppController может быть определен в /app/app_controller.php и содержит методы, которые делятся между всеми контроллерами вашего приложения. Класс AppController расширяет класс Controller, который является стандартной библиотекой CakePHP.
Контроллеры могут включать в себя любое количество методов (функций), которые обычно рассматриваются, как действия. Действия – это методы контроллера, которые используются для показа отображений (views). Действие – это один метод контроллера. Диспетчер CakePHP вызывает действие, когда входящий запрос соответсвует URL действия контроллера. Возвращаясь к нашему примеру онлайн пекарни, наш контроллер рецептов RecipesController может содержать действия view(), share() и search(). Этот контроллер находится в /app/controllers/recipes_controller.php и содержит:
<?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..
} }
?>
Для того, чтобы вы эффективно использовали контроллеры в ваших приложениях, мы опишем далее некоторые параметры (свойства) и методы (функции) контроллера.