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(AdvancedPHPDebugger)
8-1.APD 是 AdvancedPHPDebugger,即高级PHP调试器。 是用来给PHP代码提供规划与纠 错的能力, 以及提供了显示整个堆栈追踪的能力。 APD 支持交互式纠错,但默认是将数据写入跟踪文件。 它还提供了 基于事件的日志, 因此不同级别的信息 (包括函数调用, 参数传递,计时等)可以对个别的脚本打开或关闭。
9.使用 Xhprof 进行性能分析 使用 一般情况下来说,大家都是使用 Xdebug,但是 Xdebug 太麻烦,需要各种配置,还有复杂的查 看生成的数据文件,并且 Xdebug 无法再线上使用,因为特别占用 CPU 资源,所以就诞生了 Xhprof。 Xhprof 是 Facebook 开源出来的一个性能测试工具,它比较轻量级,它运行更轻便快速,输出的数据更容 易查看。
10.PHP单元测试技术 PHPUnit 是一个轻量级的PHP测试框架。它是在PHP5 下面对 JUnit3 系列版本的完整移 植,是 xUnit 测试框架家族的一员(它们都基于模式先锋 Kent Beck的设计)。