ThinkPHP--调试模式

调试模式

//入口文件处,开启调试模式。
define('APP_DEBUG',true);

调试模式在开发中开启的优势有:
1、开启日志记录,任何错误和调试信息都会详细记录;
2、关闭模板缓存,模板修改可以及时生效;
3、记录SQL日志,方便分析SQL;
4、关闭字段缓存,数据表字段修改受缓存影响;
5、严格检查文件大小写,帮助提前发现Linux部署问题;
6、通过页面Trace公共更好的调试和发现问题。

异常处理

TP的异常抛出相对来说比较人性化,当然我们也可以自行调用这种错误信息。

//手动抛出异常
E('失败!');

模型调试

在模型调试中,为了更好查明错误,经常需要查看最近使用SQL语句。

//获取最近的SQL语句
echo $user->getLastSql();
//查看SQL的错误信息
$list = $user->query('SELECT * FROM aaa');
echo $user->getDbError();

性能调试

我们可以使用大G()方法,来测试某段代码的内存开销和运行时间。

//包裹要测试的代码
G('begin');  //包裹开始
$user = D('User');
$list = $usser->select();
$this->assign('list',$list);
$this->display();
G('end');   //包裹结束
//计算运行时间,单位秒
echo G('begin','end','s');
echo '<br/>';
//计算消耗内存,单位kb
echo G('begin','end','m').'kb';

PS:如果你的环境不支持内存消耗测试,它会自动按时间运算。

变量调试

在开发中,我们经常需要对变量进行调试,一般会采用PHP自带的var_dump()print_r方法,TP内置了一个对浏览器友好的dump()方法,用于输出变量信息。

//参数1必选,其他可选
dump($list, true, null, false);

PS:参数1 为变量,参数2 为是否打印,参数3 标识,参数4 是否采用print_r

日志记录

日志处理是系统自动进行的,在开启日志记录的情况下,会记录下运行的日志级别
的所有日志信息。
一般情况下,SQL 日志级别必须在调试模式下开启有效,否则不会记录。默认情况下,一般在调试模式下记录日志,如果要在部署模式下开启日志记录,则需要进行配
置。

//部署模式下开启日志记录
'LOG_RECORD' =>true,
//运行的日志记录级别
'LOG_LEVEL' =>'EMERG,ALERT,CRIT,ERR',

ThinkPHP 对系统的日志按照级别来分类,包括:
1.EMERG 严重错误,导致系统崩溃无法使用
2.ALERT 警戒性错误, 必须被立即修改的错误
3.CRIT 临界值错误, 超过临界值的错误
4.ERR 一般性错误
5.WARN 警告性错误, 需要发出警告的错误
6.NOTICE 通知,程序可以运行但是还不够完美的错误
7.INFO 信息,程序输出信息
8.DEBUG 调试,用于调试信息
9.SQL SQL 语句,该级别只在调试模式开启时有效

//手动写入,第二参数为级别,第三为强制
Log::record('日志','WARN',true);
//不受配置文件影响
Log::write('日志','WARN');

Trace

ThinkPHP 提供了一个非常方便的调试工具:页面Trace。这个工具必须在调试模式下有
效。

//页面Trace
'SHOW_PAGE_TRACE' =>true,
//设置要显示的调试模块
'TRACE_PAGE_TABS'=>array(
'base'=>'基本',
'file'=>'文件',
'think'=>'流程',
'error'=>'错误',
'sql'=>'SQL',
'debug'=>'调试'
),
//调试方法
trace('调试方法', '提示', 'user');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值