很少有人能一次写出没有任何bug的代码,就算是大牛写完代码也是需要测试的。
前面说了如何搭建PHP开发环境,本篇来说说如何调试PHP。
开发工具是netbeans,调试工具是xdebug。
具体步骤如下:
1、去http://www.xdebug.org/download.php下载相应的php_xdebug.dll,这个要根据你自己的php版本哦。
然后把下载的文件放到php的ext目录下,其实放在任何你想要的目录都可以,主要是在下面说的php.ini里指定好路径。
2、修改php.ini
zend_extension=PHP安装目录/ext/php_xdebug-2.2.7-5.3-vc9.dll
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug
不同系统及 PHP 版本有不同写法
Linux 和 Mac OS X : zend_extension = PHP安装目录/ext/php_xdebug-2.2.7-5.3-vc9.dll
Windows Thread-Safe 版 PHP : zend_extension_ts = PHP安装目录/ext/php_xdebug-2.2.7-5.3-vc9.dll
Windows Non-Thread-Safe 版 PHP : zend_extension = PHP安装目录/ext/php_xdebug-2.2.7-5.3-vc9.dll
但在 PHP5.5 环境下测试, Thread-Safe 版 PHP 后面不能加 _ts 只能写成 zend_extension =
需要注意的是同一服务器只能加载一个调试工具,要么 Zend Debugger 要么 Xdebug
下面是几个不必须的参数。
xdebug.auto_trace=on
xdebug.collect_params=on
xdebug.collect_return=on
xdebug.trace_output_dir="D:/php/debuginfo"
xdebug.profiler_enable=on
xdebug.profiler_output_dir="D:/php/debuginfo"
trace_output_dir 对于的是类似trace.4046332594.xt的文件,
profiler_output_dir对应得是类似cachegrind.out.10360 这样的文件
最好重启下Apache服务
3、设置netbeans,
1、工具->选项->常规 选择好web浏览器
2、文件->项目属性-运行配置->项目URL配置为访问的域名、索引文件配置为index.php
工具->选项->php->调试 查看高度的端口是否正确 下一步就可以打开你要调试的文件开始了,设置好断点(其实在调试过程中你还可以设置或修改断点)。
调试过程中的情况大概如下图,你可以看执行过程中各个变量的情况。