您确定可以使用 Xdebug 来调试 Yii(或任何其他基于框架的)应用程序吗?由于 Yii 引入了基于 MVC 模式的 URL 重写,我认为你不能。
我对 Xdebug 没有太多经验,但从我发现我清楚地看到,它(连同 Eclipse PDT)在调试时强烈依赖于 Eclipse 内部浏览器中显示的 URL。
因此,以屏幕截图中的 URL 为例:
http://localhost/testdrive/index.php?r=dispozitive
正如您所提到的,Eclipse 已正确打开index.php
,这是正常的,因为它在 URL 中直接引用,并且您可能在调试配置窗口中将其指出为启动文件。
但更进一步。您希望 Eclipse 如何理解该路由dispozitive
(其中路由本身是一个完全 Yii 概念(或类似框架)并且 Eclipse / Xdebug / PHP 对此一无所知)或?r=dispozitive
URL 部分对应于protected/SiteController.php
文件系统中的执行文件并调用默认值actionIndex()
从中?所以它可以知道它应该在 IDE 中打开它,并可能在定义的断点处停止执行。
这个过程和概念(路由)是 100% 由 Yii 编写并由 Yii 内部完成的,那么您希望 Eclipse 或 Xdebug 如何了解它?
正如我所写的,我在调试 Yii 应用程序方面没有太多经验,但从我发现直到知道,我清楚地看到,如果 PHP 应用程序使用任何类型的 URL 重写,你不能用 Xdebug 调试它们方法。恕我直言,这种技术(使用 Xdebug 调试)仅适用于应用程序,其中 URL 更改直接反映应用程序内容中文件系统中的文件。
编辑:另外,检查你有哪个版本的 Eclipse(包)?事实证明,Helios 包有一些错误并且不会在断点处停止。这使得它对调试过程毫无用处。您应该考虑改为使用Galileo Package Eclipse for PHP Developers。