Мне нужно некоторое общее поведение во всех контроллерах. Хорошо ли иметь BaseController и заставить все контроллеры расширять этот класс? Если да, то каков правильный способ избежать Fatal error: Class 'BaseController' not found
ошибка.
Это, безусловно, общий подход.
Но статья проекта ZF Мэтью Вейер О'Финни объясняет, как помощники действий могут обеспечить те же преимущества с большей гибкостью.
В частности, общий базовый контроллер часто становится свалкой для функциональности, которая используется в контроллерах с несколькими, но не все, поэтому она становится излишней. Action-helpers являются альтернативой ленивой нагрузки, вызывая функциональность именно тогда и там, где вам это нужно.
Кроме того, крючки диспетчера действий-помощника – init()
, preDispatch()
и postDispatch()
– позволяют вам автоматизировать плагин-подобные функции на основе каждого контроллера .
Я бы пошел на помощь. Но, как и большинство вещей, YMMV. 😉
Да, это хорошая идея и очень распространенная картина. Ознакомьтесь с подклассификацией раздела Action Controller справочного руководства ZF.
Нет, не делай этого. Используйте помощники действий, чтобы добавить функциональность к вашему контроллеру. Если вы используете базовый контроллер, он быстро станет сложным и небезопасным. Помощники действий обеспечивают большую гибкость.
Да, это хорошая идея.
Каков правильный способ избежать Fatal error: Class 'BaseController' не найдена ошибка.
Вы читаете больше о Zend_Loader , чтобы избежать этой ошибки