1:内置 API 输出调试 : 我们除了用 echo,print,print_r, var_dump, var_export 1-1. debug_zval_dump 输出结果跟 var_dump 类似,唯一增加的一个值是 refcount,就是记录 一个变量被引用了多少次,这是 php 的 copy on write (写时复制) 的机制的一个重要特点。 1-2. debug_print_backtrace 可以让我们查看整个程序的调用栈,用来查看瞬间函数调用栈, 方便在出错时查看执行上下文. 2:错误控制和日志记录调试 错误控制和日志记录调试 2-1. Php.ini 配置中,跟错误相关的选项主要:error_reporting、display_errors、log_errors、 error_log 等几个,这些选项在一般语法级别的调试是很有帮助的。 3.错误抛出和处理 错误抛出和处理 3-1. 错误抛出和处理主要是说我们在
程序中,能够自己触发错误,或者是自己截获处理错误, 类似于面向对象编程里的异常处理 throw 抛出异常,catch 截获异常一个思路。 trigger_error、set_error_handler、set_exception_handler 这三个 api 主要就是处理错误抛出 和处理内置函数。 4.FirePHP 调试 4-1.FirePHP 是一个附加在 firebug 上面的插件,用来调试 PHP,操作过程很简单。在 PHP 端 使用 FirePHP 提供的 PHP 日志记录类库来输出调试信息, 在浏览器端使用 Firebug + FirePHP 来接收查 看输出的调试信 息,这些调试信息会直接附加在返回的 HTTP 头信息里, 这些信息不会被浏览器直接显 示, 只会在 firephp 获 取显示,有效的达到了调试和页面显示都不冲突的
问题。(必须使用 firefox 浏览器) 5.IDE 调试 5-1.Vim,Zend Studio,Eclipse,NetBeans 中调试功能 6.PHP 性能调试技术 6-1. 基本上使用 microtime() 这种计算时间的函数就能够来监测时间,如果使用 time() 之 类的函数,统计 时间粒度就太粗了。 7.使用 Xdebug 进行性能分析 使用 7-1 使用简单的时间统计,第一个需要在代码里增加时间点监控,比较麻烦,有时候我们需要 看一段代码里那些函数调用是比较消耗时间的,单纯的使用时间控制就比较麻烦,这个时候, 就可以使用 Xdebug 这种性 能分析工具了。 8.APD(Advanced
PHP Debugger) 8-1.APD 是 Advanced PHP Debugger,即高级 PHP 调试器。 是用来给 PHP 代码提供规划与纠 错的能力, 以及提供了显示整个堆栈追踪的能力。 APD 支持交互式纠错,但默认是将数据写入跟踪文件。 它还提供了 基于事件的日志, 因此不同级别的信息 (包括函数调用, 参数传递,计时等)可以对个别 的脚本打开或关闭。 9.使用 Xhprof 进行性能分析 使用 一般情况下来说,大家都是使用 Xdebug,但是 Xdebug 太麻烦,需要各种配置,还有复杂的查 看生成 的数据文件,并且 Xdebug 无法再线上使用,因为特别占用 CPU 资源,所以就诞生了 Xhprof。
Xhprof 是 Facebook 开源出来的一个性能测试工具,它比较轻量级,它运行更轻便快速,
输出的数据更容 易查看。 10.PHP 单元测试技术 PHPUnit 是一个轻量级的 PHP 测试框架。它是在 PHP5 下面对 JUnit3 系列版本的完整移 植,是 xUnit 测试框架家族的一员(它们都基于模式先锋 Kent Beck 的
设计)。