2009-10-11 2 views
0

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

Что я должен добавить в свой Bootstrap? (My bootstrap extends Zend_Application_Bootstrap)

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

ответ

3

Как и любой другой класс - назначьте его Zend_Registy. Я хотел бы предложить настройки, как это:

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

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

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

+0

Затем вам нужно использовать Zend_Registry :: get() для извлечения значения, исправить? – hourback

+0

См. Обновленный ответ –