Что происходит первым: init или preDispatch? - PullRequest
3 голосов
/ 18 сентября 2010

Я читал ответ на вопрос здесь , и формулировка была немного запутанной. Я сократил предложения, чтобы сосредоточиться на моем вопросе

  • Первый preDispatch () вызывается для экземпляров Zend_Controller_Plugin_Abstract ...
  • init () действия Zend_Controller_Action вызывается следующим ...
  • Здесь вызывается метод preDispatch () контроллера ...

Означает ли это, что в самом контроллере код init запускается первым перед кодом preDispatch?

Существует предварительный диспетчер, который запускается первым, но не для кода контроллера, просто для кода, который может существовать в любых внешних плагинах, верно?

Ответы [ 3 ]

10 голосов
/ 24 октября 2010

Действительно, init запускается до preDispatch. Полный поток событий представлен на этой диаграмме: image

Для меня было очень полезно понять полную структуру фронт-контроллера Zend Framework.

6 голосов
/ 18 сентября 2010

init выполняется до preDispatch, init означает сокращение для инициализации (или инициализации, если вы американец).

Так что сначала он запускается для инициализации всего, что вам может понадобиться позже в контроллере

1 голос
/ 09 февраля 2012

Просто добавьте метод init() к вашему собственному помощнику действий, который подключается к вашему контроллеру init(), в любом случае вы можете использовать init() до preDispatch().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...