我安装了Firefox 3.6.15,Firebug和FirePHP插件,启用了控制台。我正在使用Zend 1.11。以下代码在firebug控制台中没有显示任何内容。
<?php
require_once('Zend/Log.php');
require_once('Zend/Log/Writer/Firebug.php');
$writer = new Zend_Log_Writer_Firebug();
$logger = new Zend_Log($writer);
$logger->info('info message');
$logger->warn('warning message');
$logger->err('error message');
?>
我尝试使用FirePHP核心库,这有效 -
<?php
require_once('FirePHPCore/FirePHP.class.php');
ob_start();
$firephp = FirePHP::getInstance(true);
$var = array('i'=>10, 'j'=>20);
$firephp->log($var, 'Iterators');
?>
想让Zend的东西运转起来。有什么想法吗?
答案 0 :(得分:6)
尝试使用地方
$request = new Zend_Controller_Request_Http(); $response = new Zend_Controller_Response_Http(); $channel = Zend_Wildfire_Channel_HttpHeaders::getInstance(); $channel->setRequest($request); $channel->setResponse($response); //buffering ob_start();记录器消息之前
。
之后
// flushing $channel->flush(); $response->sendHeaders();
答案 1 :(得分:2)
嗯,实际上代码的两个片段之间的主要区别在于,在FirePHP代码中,您正在启用输出缓冲(使用obstart();
调用),而在Zend Framework代码片段中则不然。让它与Zend一起工作的最简单方法可能是将php.ini中的output_buffering
标志设置为On(如果你不想设置,你可以在虚拟主机定义或htaccess中使用apache全球)。
我只是在我的Bootstrap中使用它:
protected function _initLogger()
{
$writer = new Zend_Log_Writer_Firebug();
$logger = new Zend_Log($writer);
Zend_Registry::set('logger', $logger);
}
然后使用Zend_Registry::get('logger')->log(...);
并将其与output_buffering设置为on(FF 3.6.15,Firebug 1.6.2,FirePHP 0.5.0)。