现在在 Eclipse 中设计调试环境。请创建新的 test4.php 文件,先保持为空。现在单击 Run > Debug。在左侧面板中选择 PHP DBG Script,并单击 New。现在转到 File 选项卡,输入当前项目 debugArticle 以及想要调试的文件 test4.php。现在转到 Environment 选项卡,然后再到 Interpreter 子选项卡。在 PHP 的安装目录中找到 php.exe 文件(我的是 c:\apps\php5.0.3\php.exe)。现在单击 Remote Debug 子选项卡,选择 Remote Debug,如果没有使用 Windows,请取消 “Open with DBGSession URL in internal browser box” 复选框。把 Remote Source 路径设置成与要测试的 PHP 脚本的绝对路径(不是 Web 路径)相同(我的设置是 c:\www\debugArticle\test4.php)。现在单击 Debug。
现在应当装入 Debug 透视图,如图 8 所示。否则,请单击 Window > Open Perspective > Other,并选择 Debug。
现在可以设置断点了。
对于本文中使用的插件和扩展的版本,断点功能是必需的,因为 PHP 在把输出发送到浏览器之前会缓冲它。除此之外,需要做的不仅仅是设置一个断点把当前显示数据刷新到 Web 浏览器,所以要像下面和图 8 所示那样定义 test4.php。
清单 4. 设置和创建断点
<?php
function break-point(){
ob_flush();
flush();
sleep(.1);
debugBreak();
}
print("This will get shown first, ");
print("as will this<br>");
breakpoint();
print("This won't get shown until after ");
print("continuing the break-point<br>");
breakpoint();
print("END!");
?
breakpoint() 函数会把缓冲的输出和其他缓冲的数据刷新到 Web 浏览器。对 sleep(.1) 的调用是必需的,这样代码中止于 debugBreak() 之前,服务器才有足够的时间把数据刷新到 Web 浏览器,这个函数是前面下载的 PHP 调试器扩展的内部函数。这样,调用 breakpoint() 会把 HTML 块、print() 和 echo() 语句的数据刷新到浏览器,然后中止代码执行。
在像清单 4 那样编写完代码之后,可以打开浏览器并指向 test4.php,或者可以查看 PHP 浏览器窗口(我的是 )。每次输入和保存文件时,在 PHP 浏览器窗口中就已经启动了调试序列。如果不使用 Windows,请通过浏览器查看 test4.php。在保存了文件之后,用 F8 或单击 Run > Resume 继续代码执行。持续这么做,直到最后一行输出是 END! 为止(参见图 9、10 和 11)。
请注意图 9 中的 Debug 窗口如何把执行显示为挂起的。
图 10. 第一个断点之后到第二个断点之前的 PHP 浏览器输出
图 10 的 Debug 窗口仍然把执行显示为挂起,而第二组数据显示在 PHP 浏览器中。
注意,图 11 的 Debug 窗口中的代码不再挂起,整个脚本已经执行,如图 11 中的 PHP 浏览器所示。
既然已经看到了用 PHPEclipse 和调试器扩展进行开发的优势,那么很难想像没有它会怎么样。
现在已经向 PHP 的调试技术集中添加了错误报告的运用、print 语句、PHPEclipse 和调试器扩展,您可以通过减少每行代码的错误数量,成为更有效的 PHP 编码人员。请参阅 获得一些 PHP 教程,可以在上面测试这些新技能。
下载 Sample code for PHP Debugging
学习
学习如何在基于 Windows 和 UNIX® 的系统上 安装 Java。
请访问 Eclipse.org 获得编程和如何使用它的全面信息。
“Eclipse 平台入门”(developerWorks,2002 年 11 月)提供了 Eclipse 的历史和概述,包括如何安装 Eclipse 和插件的细节。
请访问 PHPEclipse 学习关于安装 PHPEclipse 和如何使用它的更多内容。
DBG 是一个全功能的 PHP 调试器引擎,一个交互的工具,有助于调试 PHP 脚本。请阅读 Installing and configuring the debugger 上的这份教程。
要学习关于 Eclipse 的更多内容,请访问 developerWorks 的 Eclipse project resources。
要学习关于 PHP 的更多内容,请访问 developerWorks 的 PHP project resources。
请参阅 PHP 手册获得更多关于 error reporting 的内容。
请阅读安装 PHP and Apache2 on Linux 的操作说明。
请阅读安装 PHP and Apache2 on Windows 的操作说明。
要获得一系列学习 PHP 编程的 developerWorks 教程,请参阅 “学习 PHP,第 1 部分”、学习 PHP,第 2 部分 和 学习 PHP,第 3 部分。
请密切关注 developerWorks technical events and webcasts。
请访问 developerWorks 开放源码专区 获得丰富的 how-to 信息、工具和项目更新,有助于用开放源码技术进行开发并把它们用于 IBM 的产品。