Хорошая идея иметь BaseController и заставить все контроллеры расширять этот класс? - PullRequest
1 голос
/ 19 февраля 2011

Мне нужно общее поведение на всех контроллерах. Хорошая идея иметь BaseController и заставить все контроллеры расширять этот класс? Если это так, как правильно избежать ошибки Fatal error: Class 'BaseController' not found.

Ответы [ 4 ]

6 голосов
/ 19 февраля 2011

Это, безусловно, общий подход.

Но статья от руководителя проекта ZF Мэтью Вейера О'Финни объясняет, как помощники действий могут обеспечить те же преимущества с большей гибкостью.

В частности, общий базовый контроллер часто становится площадкой сброса для функциональности, которая используется в нескольких, но не во всех контроллерах, поэтому он становится излишним.Помощники действий - это своего рода альтернатива с отложенной загрузкой, вызывающая функциональность именно тогда, когда и где она вам нужна.

Кроме того, диспетчерские перехватчики действия - init(), preDispatch() и postDispatch() - позволяютВы автоматизируете плагиноподобную функциональность на для каждого контроллера .

Я бы пошел помощниками действий.Но, как и в большинстве случаев, YMMV.; -)

3 голосов
/ 19 февраля 2011

Нет, не делай этого. Используйте помощники действий, чтобы добавить функциональность вашему контроллеру. Если вы используете базовый контроллер, он быстро станет сложным и нестабильным. Помощники действий обеспечивают большую гибкость.

3 голосов
/ 19 февраля 2011

Да, это хорошая идея и очень распространенная модель.Проверьте Подклассы Action Controller раздел справочного руководства ZF.

2 голосов
/ 19 февраля 2011

Да, это хорошая идея.

Как правильно избежать фатальной ошибки: класс «BaseController» не найден.

Вы должны прочитать большео Zend_Loader , чтобы избежать этой ошибки

...