#php #cakephp #cakephp-1.3
#php #cakephp #cakephp-1.3
Вопрос:
Я прошел через несколько базовых руководств по CakePHP. Теперь я пытаюсь понять компонент аутентификации.
Почему в этом руководстве:http://book.cakephp.org/pl/view/643/Preparing-to-Add-Auth они создают новый класс AppController? Я спрашиваю, потому что я только что создал несколько контроллеров, в которых классы унаследованы от класса AppController, и у меня еще не было собственного класса AppController.
Ответ №1:
Вы создаете новый AppController, чтобы определить новую расширенную функциональность для ваших контроллеров.
В принципе, все ваши контроллеры должны расширять ваш новый класс AppController, который определяет всю вашу логику аутентификации. Эти методы beforeFilter () / afterFilter () запускаются вашим диспетчером автоматически, и эти методы могут определять, следует ли продолжать обработку текущего контроллера.
Комментарии:
1. Итак, когда я проходил через учебные пособия, где я не создавал класс AppController (app_controller.php в каталоге /app) все контроллеры, которые я создал, расширили другой (встроенный) класс AppController?
2. Да, создайте app_controller.php файл в вашем каталоге приложений и все ваши контроллеры должны расширять AppController
3. Я думаю, вы меня не понимаете (мой английский не так хорош). Если я создам app_controller.php файл (с классом AppController) в моем каталоге приложений, в котором я перезаписываю класс AppController из другого файла?
4. Если у вас уже есть app_controller.php тогда вам не нужно перезаписывать его в каталоге вашего приложения. По сути, вы просто хотите объединить два файла вместе, добавив функциональность, определенную в руководстве, к вашему существующему AppController.
5. @latata: Если у вас нет app_controller.php в вашем каталоге приложений CakePHP будет использовать cake/libs/controller/app_controller.php
Ответ №2:
Далее нам нужно внести некоторые изменения в AppController. Если у вас нет /app/app_controller.php создайте его. Обратите внимание, что это относится к /app /, а не к / app / controllers /. Поскольку мы хотим, чтобы весь наш сайт контролировался с помощью Auth и Acl, мы настроим их в AppController.
В этом примере вы просто вносите изменения (добавляя beforeFilter()
обратный вызов) в «скелет» класса AppController. Этот класс будет расширен всеми контроллерами в вашем приложении. Это способ добавить функциональность, которая применяется ко всем контроллерам в вашем приложении.