Как создать глобальный Zend_Log с помощью Zend_Application_Bootstrap

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

Что я должен добавить в свой Bootstrap? (Мой бутстрап расширяет Zend_Application_Bootstrap)

Как тогда я могу получить доступ к объекту регистратора из действий моего контроллера и из моей модели?


person Peter Smit    schedule 11.10.2009    source источник


Ответы (1)


Как и с любым другим классом — назначьте его в Zend_Registy. Я бы предложил установить так:

Zend_Registry::set('Zend_Log',$logInstance);

Это распространенный способ, который также используется для перевода (установите для экземпляра перевода значение «Zend_Translate», и такие классы, как формы и валидаторы, найдут его автоматически).

Вы можете использовать Zend_Registry::get('Zend_Log')->log(...) для регистрации в любом месте. С точки зрения архитектуры это не очень хорошо (обычно использовать не стоит), но для лога, который может появиться практически в любом месте приложения, от хелперов представлений до контроллеров и моделей, это хорошо.

person Tomáš Fejfar    schedule 11.10.2009
comment
Затем вам нужно использовать Zend_Registry::get() для получения значения, верно? - person hourback; 24.05.2013