Контроллер используется для управления логикой части вашего приложения. Чаще всего, контроллеры используют для управления логикой отдельной модели. Например, если вы создаете сайт для онлайн пекарни, то вам необходимо создать RecipesController и IngredientsController, управляющие вашими рецептами и компонентами рецептов соответственно. В CakePHP контроллер именуют как модель, которой он управляет, только во множественном числе с прибавлением слова Controller. Моделью 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 и содержит: