Свежайшие Пирожки от CakePHP по-русски

Полнейшее руководство CakePHP 1.2 на русском языке, горячие новости и полезные статьи

Вступление

Контроллер используется для управления логикой части вашего приложения. В большинстве случаев, контроллеры используются для управления логикой одной модели. Например, если вы создаете сайт при помощи консоли, у вас будут контроллеры RecipesController и IngredientsController, которые будут управлять моделями recipes и ingredients соответственно. В CakePHP, контроллеры называются именем модели, которой он управляет, во множественной форме.

Модель Recipe управляется контроллером RecipesController, модель Product управляется ProductsController и тд.

Все контроллеры вашего приложения наследуются от CakePHP класса AppController, который в свою очередь наследует класс ядра Controller. Класс может быть определен в файле /app/app_controller.php и он будет содержать методы которые будут доступны всем контроллерам вашего приложения. Он расширяет стандартный класс Controller библиотеки CakePHP.

Контроллеры могут содержать любое количество методов, которые обычно называют действиями (actions). Действия - это методы контроллера используемые для отображения Представлений(вьювов). Действие - это один метод контроллера. В CakePHP диспетчер вызывает действия, когда входящий URL запрос переводится в выполнение метода контроллера.Возвращаясь к нашему примеру, контроллер RecipesController содержит действия view(), share() и search(). Контроллер лежит тут /app/controllers/recipes_controller.php и содержит:

Простой текст
  1. <?php
  2. # /app/controllers/recipes_controller.php
  3. class RecipesController extends AppController {
  4. function view($id) {
  5. //логика действия тут..
  6. }
  7. function share($customer_id, $recipe_id) {
  8. //логика действия тут..
  9. }
  10. function search($query) {
  11. //логика действия тут..
  12. }
  13. }
  14. ?>

Для того чтобы использовать контроллер эффективно в вашем приложении, мы охватим некоторые из основных атрибутов и методов, предусмотренных в контроллерах CakePHP.