2

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

4

2 回答 2

6

根据这两个页面

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);
于 2012-02-03T04:53:15.657 回答
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()语句。

于 2012-02-03T10:48:57.453 回答