Как использовать Zend Log как отдельный компонент? - PullRequest
2 голосов
/ 03 февраля 2012

Я хочу использовать механизм журнала Zend Framwork в качестве отдельного компонента, это означает, что все, что я хочу от ZF, это просто журнал. Как я могу это сделать?

Ответы [ 2 ]

6 голосов
/ 03 февраля 2012

Согласно этим двум страницам

Zend_Log требует Zend_Exception и следующие

  • DOM
  • libxml
  • Reflection

Это означает, что вам действительно нужно только следующее из самого фреймворка

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);
1 голос
/ 03 февраля 2012

Всякий раз, когда я хочу использовать отдельные компоненты из 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().

...