Итак, я хочу начать регистрацию в моем приложении Zend Framework. Я хочу зарегистрировать регистратор где-нибудь в моем бутстрапе, чтобы я мог легко получить доступ к нему из любого действия контроллера. Я думаю, что это должно быть просто, что было сделано раньше, но как я могу это сделать?
Документация показывает что-то подобное, но я не хочу создавать новый Zend_Log каждый раз, когда я хочу что-то записывать:
$writer = new Zend_Log_Writer_Stream('/path/to/my/log/file');
$logger = new Zend_Log($writer);
$logger->log('Informational message', Zend_Log::INFO);
Решение
Вот что я придумал. Спасибо за напоминание о Zend_Registry!
// in /application/Bootstrap.php
protected function _initLogger()
{
$writer = new Zend_Log_Writer_Stream('php://output');
$logger = new Zend_Log($writer);
Zend_Registry::set('logger', $logger);
}
// in controller actions
$logger = Zend_Registry::get('logger');
$logger->log('message');