解决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,           // 显示内存开销
打赏

本文固定链接: https://www.cxy163.net/archives/146 | 绝缘体

该日志由 绝缘体.. 于 2012年01月25日 发表在 ThinkPHP 分类下,
原创文章转载请注明: 解决thinkphp,SHOW_RUN_TIME开关不起作用的问题 | 绝缘体
关键字:

报歉!评论已关闭.