3

我在使用 Yii 框架的 PHP 项目时遇到问题。我的设置如下:Win7 + Eclipse4.2 + PDT 3.1 + Yiiclipse PDT 扩展 + 启用 XDEBUG 的 WAMP 服务器。

几乎一切正常。调试会话开始,它通过项目的 index.php 源,但是当它必须跳转到框架的文件时,它不会打开它们。我编辑了源查找并添加了框架的本地路径,但它根本找不到它们。

这是一个截图:http: //img607.imageshack.us/img607/3687/eclipsepdt.png

http://img607.imageshack.us/img607/3687/eclipsepdt.png

4

2 回答 2

0

这不一定是答案 - 但你的问题也不一定是问题,所以我觉得这是公平的游戏:D

过去,我在使用 Eclipse PDT + xdebug 的调试、代码完成等方面遇到了很多问题,以至于我不久前放弃了它并转而使用 Netbeans 进行 PHP 调试。它现在是我的开发团队调试 PHP 的事实上的标准;即使我们仍然有自己喜欢的编辑器,当我们需要调试时,我们仍然会使用 Netbeans。

无论我在什么平台(Windows、OS X、Linux)上开发,代码完成、完成时的 phpdoc“工具提示”和调试都对我来说完美无缺,我不能对 Eclipse PDT 说同样的话(代码完成经常会错过,根据我的个人经验,我会遇到问题或崩溃调试等)。

所以,如果这不是对非问题的非回答,我提前道歉 - 但也许试试Netbeans

于 2013-04-09T15:27:37.613 回答
0

您确定可以使用 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=dispozitiveURL 部分对应于protected/SiteController.php文件系统中的执行文件并调用默认值actionIndex()从中?所以它可以知道它应该在 IDE 中打开它,并可能在定义的断点处停止执行。

这个过程和概念(路由)是 100% 由 Yii 编写并由 Yii 内部完成的,那么您希望 Eclipse 或 Xdebug 如何了解它?

正如我所写的,我在调试 Yii 应用程序方面没有太多经验,但从我发现直到知道,我清楚地看到,如果 PHP 应用程序使用任何类型的 URL 重写,你不能用 Xdebug 调试它们方法。恕我直言,这种技术(使用 Xdebug 调试)仅适用于应用程序,其中 URL 更改直接反映应用程序内容中文件系统中的文件。

编辑:另外,检查你有哪个版本的 Eclipse(包)?事实证明,Helios 包有一些错误并且不会在断点处停止。这使得它对调试过程毫无用处。您应该考虑改为使用Galileo Package Eclipse for PHP Developers

于 2013-05-15T12:34:19.973 回答