Jan
25
2012
解决thinkphp,SHOW_RUN_TIME开关不起作用的问题
今天跟着视频学thinkphp学到第七课的时候遇到个问题
本应该在项目配置文件中加入
'SHOW_RUN_TIME'=> true, // 运行时间显示 'SHOW_ADV_TIME' => true, // 显示详细的运行时间 'SHOW_DB_TIMES' => true, // 显示数据库查询和写入次数 'SHOW_CACHE_TIMES' => true, // 显示缓存操作次数 'SHOW_USE_MEM' => true, // 显示内存开销
就可以显示页面运行信息的,但是加上之后没有任何反应。
经过查看thinkphp核心源码,发现当有模版的时候执行
$this->display();
在模版中使用{__RUNTIME__}即可显示页面运行信息;
但是如果没有使用模版怎么让办呢?
其实只需要为ThinkPHP\Lib\Think\Core\View.class.php 中的 output() 函数动个小手术即可。
方法如下 首先找到
protected function output($content,$display) {
将output函数替换为
protected function output($content,$display) { if(C('HTML_CACHE_ON')) HtmlCache::writeHTMLCache($content); if($display) { $runtime = C('SHOW_RUN_TIME')? ''.$this->showTime().'' : ''; if(false !== strpos($content,'{__RUNTIME__}')) { $content = str_replace('{__RUNTIME__}', $runtime, $content); }else{ $content = $content.$runtime; } echo $content; if(C('SHOW_PAGE_TRACE')) $this->showTrace(); return null; }else { return $content; } }
另外还需要打开 \ThinkPHP\Common\debug.php
'SHOW_RUN_TIME'=>true, // 运行时间显示 'SHOW_ADV_TIME'=>true, // 显示详细的运行时间 'SHOW_DB_TIMES'=>true, // 显示数据库查询和写入次数 'SHOW_CACHE_TIMES'=>true, // 显示缓存操作次数 'SHOW_USE_MEM'=>true, // 显示内存开销
将其删掉或者注释否则项目配置文件config.php的变量声明无效
//'SHOW_RUN_TIME'=>true, // 运行时间显示 //'SHOW_ADV_TIME'=>true, // 显示详细的运行时间 //'SHOW_DB_TIMES'=>true, // 显示数据库查询和写入次数 //'SHOW_CACHE_TIMES'=>true, // 显示缓存操作次数 //'SHOW_USE_MEM'=>true, // 显示内存开销
最活跃的读者