Как сделать глобальный Zend_Log с Zend_Application_Bootstrap
Я хотел бы сделать глобальный Zend_Log
объект, который я могу достать из своих контроллеров и моделей.
Что я должен добавить к своему Bootstrap? (Мой бутстрап расширяется Zend_Application_Bootstrap
)
Как тогда я могу получить доступ к объекту регистратора из действий моего контроллера и из моей модели?
1 ответ
Как вы делаете с любым другим классом - назначьте его Zend_Registy. Я бы предложил установить так:
Zend_Registry::set('Zend_Log',$logInstance);
Это распространенный способ, который также используется для перевода (установите для экземпляра translate значение Zend_Translate, и классы, такие как формы и валидаторы, найдут его автоматически).
Ты можешь использовать Zend_Registry::get('Zend_Log')->log(...)
войти куда угодно. Это не очень хорошо с точки зрения архитектуры (вы не должны нормально использовать), но для журнала - который может появляться практически в любом месте приложения, от помощников вида до контроллеров и моделей - это хорошо.