since.2006  

如果您觉得PHP能像JAVA、Visual Studio等IDE一样进行代码调试很重要,就继续往下看。

半年前的“eclipse+pdt+xdebug PHP集成开发环境”是上次重装系统时,方便自己下次重装系统时快速搭建PHP集成开发环境时记录的。

现在看来,似乎没起到一点方便的作用。反而成了目前日志中浏览量最高的一篇日志了,但内容却极其简单。

现在又准备重装系统了,再为了方便下次重装,详细的记录一下。

在上一篇文章中PDT有一点小问题,在调试时显示Variables时有问题。

现在PDT1.0.2已经Release了,刚简单的试了下,上述问题已经修正,语法提示功能也有增强。

为了方便重装系统时尽量做最小的改动,选择了XAMPP解压缩版(重装后,只需运行一次setup_xampp.bat即可),现在最新版是1.6.6

下面记下安装及设置调试过程:

软件

  • XAMPP 1.6.6 解压缩版,下载地址:点击这里
  • PDT 1.0.2 Release All-in-One,下载地址:点击这里
  • XDebug 2.0.2 | Windows modules PHP 5.2.1-5.2.7,下载地址:点击这里

注意xdebug的版本必须和XAMPP中的PHP版本兼容,XAMPP 1.6.6中PHP版本是5.2.5,所以使用XDebug 2.0.2 | Windows modules PHP 5.2.1-5.2.7

安装:

安装XAMPP

  • 解压缩XAMPP,运行根目录下的setup_xampp.bat进行安装
  • 运行xampp_start.exe启动服务器,在浏览器中输入 http://localhost 进行测试
  • 运行xampp_stop.exe关闭服务器

安装XDebug

  • 将下载的php_xdebug-2.0.2-5.2.5.dll改名为php_xdebug.dll,复制到xampp\php\ext\目录下
  • 修改xampp\apache\bin\php.ini文件,查找[Zend]代码段,将此代码段下全部用“;”注释掉,查找[XDebug]代码段,将zend_extension_ts,xdebug.remote_enable,xdebug.remote_host,xdebug.remote_port,xdebug.remote_handler前面的“;”注释符去掉
  • 运行xampp_start.exe启动服务器,在浏览器中输入 http://localhost/xampp/phpinfo.php ,查找字符串Xdebug,如果能查找到,说明安装成功。

为什么要注释掉[Zend]代码段?因为Zend Optimizer和Xdebug 2.0.2不兼容,会导致XAMPP启动失败。

安装PDT

  • 解压缩pdt-all-in-one-R20080103-win32.zip,运行eclipse.exe启动PDT(注意:因为eclipse是java写的,所以需要先安装JRE)
  • 配置XDebug在PDT中使用,新建一debug.php文件,内容如下:
  1. <?php   
  2. function add($a$b) {   
  3.        
  4.     $result = $a + $b;   
  5.        
  6.     return $result;   
  7. }   
  8.   
  9. echo add(4, 5);   
  10. ?>  
  • 在PDT编辑中第4行$result处打一个断点(双击行号左侧空白区域),如图:

  • 菜单栏“Run - Open Debug Dialog”,在左侧PHP Web Page下新建一个启动配置,Server Debugger设置为XDebug,File中设置为刚才新建的debug.php文件,Break at First Line不用勾选,URL处如果不正确,手工设置为正确路径。点击"Apply"保存配置。如图:

  • 在工具栏上打开debug按钮,在下拉选项中选择XDebug,这时会弹出是否切换到debug透视图的对话框,选择"Yes"进行切换。

  • 这时可以看到已经进入了调试状态,Variables中可以看到$_POST,$_GET,变量$a,$b等的值。

  • 接下来进行单步调试吧,看看Variables处值的变化

其它

新建一个如上所述的debug.php文件是比较方便的,正常情况下我们要调试的页面很多,不可能去一个页面一个页面配置xdebug,每次要调试时,就调试一次上面文件,不要点红色方块按钮中断调试功能,然后在你想要调试的代码行前加一个断点,在浏览器中正常运行,运行到刚才所打的断点时,会自动再次进入调试状态。这样就方便多了。

标签:

Posted by hee at 20:02 PM | Permalink | 评论(2) | PHP

3433 天 14 小时前
沙发 车弓 说:

我也是用PDT+xdebug调试PHP程序的,在使用中发现一个问题,就是在Expressions中数组的内容是32个元素为一组显示的(如[0…31],[32…63],…),当要查看的数组中的元素超过32个时,在Expressions中只能看到第一组[0…31]中的元素的值,其余的组都是空的。不知你有没有遇到相似的情况?

3432 天 13 小时前
板凳 hee 说:

我这也是这种情况,不过幸好对我影响不太,很少要查看全部元素。

还有个问题,项目用utf-8编码时,变量内容是中文时,全部是乱码,没找到解决方法。

请输入名称
请输入邮件地址

 

    请输入邮件地址