在使用THinkPHP的过程中难免会发送错误,所以ThinkPHP为开发者提供了一个调试模式,可以方便的为我们卡线并提示错误。但是我们要如何开启调试模式呢?
步骤/方法
第一在你已经部署好了ThinkPHP的项目。
第二注意是在入口文件开启调试模式,在入口文件index.php
中写入一下代码define(‘APP_DEBUG’,true);
首先删除Runtime目录 ,然后再次运行一下,你会发现runtime目录下面的~runtime.php
文件没有了,说明你的调试模式开启成功。
之所以这个~runtime.php文件删除 ,这个文件是编译后的文件
会有缓存,在调试模式期间我们不用担心因为缓存而造成其他错误
trace页面的
也是我们开发者获取错误信息的而一个途径,所以我们需要开启trace页面,在THinkPHp3.0版本中trace页面是默认没有开启的,需要我们手动
的在项目配置文件中添加
‘SHOW_PAGE_TRACE’ =>true, //
显示页面Trace信息
想要看看trace信息是否开启了,只要我们在 IndexAction.class.php 中的index方
法中加上$this->display();
然后再次运行如果你看到了如下界面,说明你的调试模式,以及trace 以及开启了
注意事项
开启调试模式之后在Runtime 目录下面不会生成~runtime.php 文件,这样我们就不用担心因为缓存问题造成错误了,但是数据字段缓存还是存在的。
想直接项目部署成功界面是没有出现trace信息的,我们可以用$this->display()
; 查看是否开启trace成功了
页面Trace
页面Trace功能是ThinkPHP提供给开发人员的一个用于开发调试的辅助手段。可以实时显示当前页面的操作的请求信息、运行情况、SQL执行、错误提示等,并支持自定义显示。
页面Trace功能无论是调试模式还是部署模式都有效,要开启页面Trace功能,需要在项目配置文件中设置:
'SHOW_PAGE_TRACE' =>true, //
显示页面Trace信息
系统默认的Trace信息包括:请求时间、当前页面、请求协议、运行信息、会话ID、日志记录和文件加载情况。默认的页面Trace的显示如上图所示:
新版的页面Trace信息显示中已经包含了运行状态时间显示,所以开启页面Trace功能后无需再开启运行时间显示了。我们的建议是运行时间显示功能用于部署模式需要的时候开启。
一、Trace页面定制
页面Trace信息的显示模板是可以定制的,默认位于系统目录的Tpl/page_trace.tpl,可以根据项目自身的需要定制,更改TMPL_TRACE_FILE进行配置即可。
例如:
'TMPL_TRACE_FILE' =>
APP_PATH.'Public/trace.php'
关键的输出代码是:
$key=>$info){
echo $key.' : '.$info.'
';
}?>
二、Trace信息定制
如果需要扩展自己的Trace信息,有下面几种方式:
第一种方式:在当前项目的配置目录下面定义 trace.php 文件,返回数组方式的定义,例如:
return array(
'当前页面'=>$_SERVER['PHP_SELF'],
'通信协议'=>$_SERVER['SERVER_PROTOCOL'],...
);
在显示页面Trace信息的时候会把这个部分定义的信息合并到系统默认的Trace信息,所以不需要再添加系统默认的页面trace信息,这种方式通常用于Trace项目的公共信息。
第二种方式:在Action方法里面使用trace方法来增加Trace信息,该部分可以用于系统的开发阶段调试。例如:
trace('执行时间',$runTime);
trace('Name的值',$name);
trace('GET变量',dump($_GET,false));
trace方法支持批量设置,例如:
$info['执行时间']=$runTime;
$info['Name的值'] = $name;
$info['GET变量']=dump($_GET,false);
trace($info);
这种方式的trace信息显示在页面Trace信息的最开始。