• 有哪些 PHP 调试技巧?


    我目前遇到的最让我称赞的debug方式是:xdebug的
    xdebug_start_trace();
    /* 业务代码     */
    xdebug_stop_trace();
    
    他解决了我长久以来一个代码调试问题:比如有以下几个场景:
    1、一个有几百行的函数,里面有很多return,现在函数异常返回了,但是我不知道是从哪一行返回的,这时候呢,我一般的做法都是每一行echo();die();太费事了。
    2、接触一个新的框架,代码执行出现异常,怎么办呢,肯定也是一行一行的echo();die();
    3、想学习一个新框架,想知道代码的执行轨迹:执行了哪些类、调用了哪些类的方法,等等。
    现在呢,xdebug的代码跟踪,能帮我们轻松解决上面的问题。https://www.yuedecaifu.com
    xdebug的安装(网上我看到了很多的都是在说xdebug、phpstorm、chrome咋配合起来远程调试,搞得大家好像觉得xdebug用起来那么费事,那么高级,其实没必要):
    1、安装php xdebug扩展(不再细说)
    2、配置:这里只讲代码跟踪相关的配置:
    cat /etc/php.d/xdebug.ini
    extension=/usr/lib64/php/modules/xdebug.so 
    ;代码跟踪日志文件位置,注意要先新建这个traces目录,并设置777
    xdebug.trace_output_dir = /tmp/traces
    ;代码跟踪日志文件格式 
    xdebug.trace_output_name = trace.%c.%p
    ;trace中显示函数的参数值,这个很有用,待会细说
    xdebug.collect_params = 4
    xdebug.collect_includes = On
    xdebug.collect_return = On
    xdebug.show_mem_delta = On
    
    安装好之后,代码执行明细(trace),就存放在/tmp/traces目录下了:
    我截取一段trace日志,大家看下,就能感知到这个用法的方便了:
    1、显示了参数的值:就这一点,我想就会节省我们phper很多的调试时间(默认不显示参数值,只显示调用的函数。需要添加xdebug.collect_params这个配置)
    2、显示了代码的执行轨迹。类似于c语言的单步调试吧。

    就这些了,反正用了xdebug,我是觉得debug的时候节省了大量时间,分享给大家,希望对你们也有帮助。
  • 相关阅读:
    怎么过滤JSON数组中反斜杠“”,反序列化
    ibatis教学实例
    jQuery给input CheckBox的值查询的一致就选中
    jQuery给CheckBox全选与不全选
    ThinkPHP5.1完全开发手册.CHM离线版下载
    4.2 执行环境及作用域【JavaScript高级程序设计第三版】
    21.1 XMLHttpRequest 对象【JavaScript高级程序设计第三版】
    13.4.3 鼠标与滚轮事件【JavaScript高级程序设计第三版】
    13.6 模拟事件【JavaScript高级程序设计第三版】
    14.5 富文本编辑【JavaScript高级程序设计第三版】
  • 原文地址:https://www.cnblogs.com/oceansea/p/5923043.html
Copyright © 2020-2023  润新知