2012-02-03 80 views
2

我想使用Zend Framwork的Log机制作为一个单独的组件,这意味着我想从ZF获得的只是Log,我该怎么做?如何使用Zend Log作为单独的组件?

+0

我的意思是如何初始化Zend日志功能 – castiel 2012-02-03 02:09:29

+0

[Zend_Log_Writer手册页](http://framework.zend.com/manual/1.11/en/zend.log.writers.html)看起来很简单。你是否要求更多的东西? – 2012-02-03 04:48:30

回答

6

根据这两个网页

Zend_Log需要Zend_Exception及以下

  • DOM
  • 的libxml
  • 反思

这意味着,你真的只需要从框架本身

library/Zend/Exception.php 
library/Zend/Log.php 
library/Zend/Log <- the directory 

然后,您应该可以使用记录仪作为一个独立组件以下。只需在列表中添加library文件夹上面include路径(Zend框架组件依赖于这一点)

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); 
+0

是的,谢谢你 – castiel 2012-02-07 05:10:00

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()语句。

+0

谢谢你们,朋友 – castiel 2012-02-07 05:10:27

+0

伟大的提示。完善。 – ylluminate 2013-04-25 06:01:31

相关问题