Пользователям PHP4 определение контроллеров следует начинать с использования параметра $name. Этому параметру должно быть присвоено имя контроллера. Обычно, это множественное число имени основной модели, которую использует контроллер. Это поможет CakePHP разобраться с именованием.
<?php
# пример использования параметра $name
class RecipesController extends AppController {
var $name = 'Recipes';
}
?>
Следующие, наиболее часто используемые параметры, скажут CakePHP какие компоненты, хелперы и модели вы будете использовать в связке с текущим контроллером. Использование этих параметров сделает эти MVC классы доступными для контроллера, как переменные класса ($this->ModelName, например).
Контроллер имеет доступ по умолчанию к его основной модели. Наш RecipesController будет иметь доступ к модели Recipe таким образом $this->Recipe. Однако, если подключаете к контроллеру дополнительные модели через переменную $uses, то имя основной модели текущего контроллера так же должно быть указано. Это проиллюстрировано в примере ниже.
Html, Form, и Session хелперы всегда доступны по умолчанию, как SessionComponent. Далее в руководстве мы узнаем больше об этих классах.
Давайте посмотрим как сказать контроллеру CakePHP, что вы собираетесь использовать дополнительные MVC классы.
<?php
class RecipesController extends AppController {
var $name = 'Recipes';
var $uses = array('Recipe', 'User');
var $helpers = array('Ajax');
var $components = array('Email');
}
?>
Каждая из этих переменных соединена с их унаследованными значениями. Таким образом, нет необходимости переопределять, например Form хелпер или что-то другое, что определено в вашем App контроллере.
В контроллере CakePHP существует несколько переменных, которые дают вам контроль над отображением внутри макета (layout).