2012-07-02 2 views
0

Я понимаю, что делают помощники действий, но я не могу понять, когда они инициализируются (экземпляр для каждого созданного). Если я не ошибаюсь, свойство _helper контроллера содержит набор экземпляров для каждого класса-помощника.Когда инициализируются помощники действий?

Я прав? Если да, все вспомогательные действия (классы соответствуют помощнику) инициализируются при загрузке приложения (по каждому HTTP-запросу)?

ответ

1

Если вы посмотрите на this part of the ZF manual, вы найдете более подробную информацию о том, как работают помощники действий.

Свойство _helper делает не держать коллекцию вспомогательных экземпляров, но содержит экземпляр «Zend_Controller_Action_HelperBroker`, который: -

обрабатывает детали регистрации объектов помощников и путей, а также получение помощников по требованию.

Помощники не конкретизируется в загрузчике, но будут создаваться в контроллере по требованию, когда вы используете что-то вроде $helper = $this->_helper->getHelper('helperName'); в контроллере.

+0

Спасибо за ответ, но как насчет некоторого прямого помощника вроде $ this -> _ helper-> url()? Является ли это экземпляром при вызове? И еще один, если я переопределяю методы hook, такие как pre-postDispatch, то для вызова этих методов я должен сначала зарегистрировать этого помощника. Поэтому каждый раз, когда я регистрирую помощника, это значит, что он тоже не подтвержден? – user1495738

+0

Независимо от того, как вы вызываете помощника действий, он создается экземпляром helperBroker, если требуется, а не раньше. – vascowhite

Смежные вопросы