我想使用Zend Framwork的Log机制作为一个独立的组件,这意味着我想从ZF获得的只是Log,我该怎么做?
答案 0 :(得分:6)
根据这两页
Zend_Log
需要Zend_Exception
和以下
这意味着您实际上只需要框架本身的以下内容
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 :(得分: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()
语句。