Как использовать Zend Log как отдельный компонент?
Я хочу использовать механизм журнала Zend Framwork в качестве отдельного компонента, это означает, что все, что я хочу от ZF, это просто журнал. Как я могу это сделать?
2 ответа
Согласно этим двум страницам
- http://framework.zend.com/manual/1.5/en/requirements.zendcomponents.html
- http://files.zend.com/help/Zend-Framework/requirements.dependencies.html
Zend_Log
требует Zend_Exception
и следующее
- DOM
- LibXML
- отражение
Это означает, что вам действительно нужно только следующее из самого фреймворка
library/Zend/Exception.php
library/Zend/Log.php
library/Zend/Log <- the directory
После этого вы сможете использовать регистратор в качестве автономного компонента. Просто добавьте library
в указанном выше каталоге к вашему пути включения (компоненты Zend Framework используют это)
set_include_path(implode(PATH_SEPARATOR, array(
'/path/to/library',
get_include_path()
)));
require_once 'Zend/Log/Writer/Stream.php';
require_once 'Zend/Log.php';
$writer = new Zend_Log_Writer_Stream('/path/to/logfile');
$log = new Zend_Log($writer);
$log->log('Some message', 1);
Всякий раз, когда я хочу использовать отдельные компоненты из Zend Framework, я просто включаю небольшой файл под названием zend_setup.php
который содержит следующие три строки кода:
set_include_path( '/Users/me/workspace/proj_name/library' . PATH_SEPARATOR . get_include_path());
require_once( '/Users/me/workspace/proj_name/library/Zend/Loader/Autoloader.php' );
Zend_Loader_Autoloader::getInstance();
Это, вероятно, не так эффективно, как выдача явного require_once()
заявления, но мне нравится удобство, которое он предлагает. Например, вы можете очень быстро решить, что вы также хотите использовать Zend_Log_Writer_Firebug()
а также Zend_Log_Writer_Mail()
, Использование автозагрузчика избавляет от необходимости писать все эти дополнительные require_once()
заявления.