Как сделать глобальный 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(...) войти куда угодно. Это не очень хорошо с точки зрения архитектуры (вы не должны нормально использовать), но для журнала - который может появляться практически в любом месте приложения, от помощников вида до контроллеров и моделей - это хорошо.

Другие вопросы по тегам