Bootstrap
и index.php
, вероятно, слишком рано. Поскольку маршрутизация еще не завершена, нет контроллера, в который можно внедрить ваш $user
объект.
На ум приходит несколько вариантов:
Использование BaseController
Создайте BaseController
форму, которую расширяют все остальные ваши контроллеры. В методе init()
вашего базового контроллера вы можете разместить свое назначение
$this->_user = Zend_Auth::hasIdentity() ? Zend_Auth::getIdentity() : null;
Тогда $this->_user
будет доступен везде, где действуют ваши контроллеры.
Но многие люди высмеивают идею BaseController. Лучше использовать Action Helper, описанный ниже.
Использование помощника действий
Создайте action helper , чей метод direct()
возвращает объект $user
, созданный так же, как и выше. Затем в ваших контроллерах вы можете получить к нему доступ как $this->_helper->user
.
В точности то, что вы называете вспомогательным классом и где вы его размещаете, зависит от путей и пространств имен, которые вы задали в Zend_Controller_Action_HelperBroker
с помощью метода addPath()
.
Использовать плагин контроллера
Перечислено для полноты. Но на самом деле, лучшая вещь IMO - это Action Helper выше.