前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ThinkPHP调试方法

ThinkPHP调试方法

作者头像
PM吃瓜
发布2019-08-13 10:45:09
1.4K0
发布2019-08-13 10:45:09
举报
文章被收录于专栏:PM吃瓜(公众号)PM吃瓜(公众号)

一.调试模式 ThinkPHP 专门为开发过程而设置了调试模式,调试模式开启后,特别方便我们进行排 错和调整。但由于它执行效率会稍低,所以在正式部署项目的时候,关闭调试模式。 // 入口文件处,开启调试模式 建议开发阶段开启 部署阶段注释或者设为false define('APP_DEBUG',true); 调试模式在开发中的优势在于: 1.开启日志记录,任何错误和调试信息都会详细记录; 2.关闭模版缓存,模版修改可以及时生效; 3.记录 SQL 日志,方便分析 SQL; 4.关闭字段缓存,数据表字段修改不受缓存影响; 5.严格检查文件大小写,帮助提前发现 Linux 部署问题; 6.通过页面 Trace 功能更好的调试和发现问题。

二.异常处理 和 PHP 默认的异常处理不同,ThinkPHP 抛出的不单纯的错误信息,而是一个人性化的 错误页面。当然,我们也可以自行调用这种错误信息。 //手动抛出异常 E('失败!'); 三.模型调试 在模型操作中,为了更好的查明错误,经常需要查看下最近使用的 SQL 语句。 //获取最近的SQL语句 echo $user->getLastSql();

//查看SQL的错误信息 $list = $user->query("SELECT * FROM bbb"); echo $user->getDbError(); 四.性能调试 我们可以使用大 G()方法,来测试某段代码的内存开销和运行时间。 //包裹要测试的代码 G('begin'); $user = D('User'); $list = $user->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 方法,ThinkPHP 内置了一个对浏览器友好的 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');

七.Track ThinkPHP 提供了一个非常方便的调试工具:页面 Track。这个工具必须在调试模式下有 效。 //页面Trace 'SHOW_PAGE_TRACE' =>true, //设置要显示的调试模块 'TRACE_PAGE_TABS'=>array( 'base'=>'基本', 'file'=>'文件', 'think'=>'流程', 'error'=>'错误', 'sql'=>'SQL', 'debug'=>'调试' ), //调试方法 trace('调试方法', '提示', 'user');

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Tech爬虫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档