我在使用Yii框架的PHP项目时遇到问题。 我的设置如下:Win7 + Eclipse4.2 + PDT 3.1 + Yiiclipse PDT扩展+ WAMP服务器,启用了XDEBUG。
几乎一切都运转正常。调试会话开始,它通过项目的index.php源,但是当它必须跳转到框架的文件时,它不会打开它们。我编辑了源查找并添加了框架的本地路径,但它根本找不到它们。
以下是截图:http://img607.imageshack.us/img607/3687/eclipsepdt.png
答案 0 :(得分:0)
这不一定是答案 - 但你的问题也不一定是个问题,所以我觉得这是公平的游戏:D
我过去曾经遇到过Eclipse PDT + xdebug的许多问题,包括调试,代码完成等等,我刚才放弃了它,并转而使用Netbeans进行PHP调试。它现在是我的开发团队调试PHP的事实标准;即使我们仍然有自己喜欢的编辑器,当我们需要调试时,我们仍然会使用Netbeans。
完成代码完成,phpdoc'工具提示'完成,并且无论我正在开发什么平台(Windows,OS X,Linux),我都能完美地调试所有工作,我不能对Eclipse PDT说同样的代码(代码完成会经常想念,我会遇到问题或者在我的个人经历中崩溃等等。
所以,如果这不是一个非问题的答案,我会提前道歉 - 但也许可以试试Netbeans?
答案 1 :(得分:0)
您确定,您可以使用Xdebug来调试Yii(或任何其他基于框架的)应用程序吗?由于Yii引入了基于MVC模式的URL重写,我认为你不能。
我对Xdebug没有多少经验,但是从我发现的我清楚地看到,它(与Eclipse PDT一起)在调试时强烈依赖于Eclipse内部浏览器中显示的URL。
因此,以屏幕截图中的URL为例:
http://localhost/testdrive/index.php?r=dispozitive
正如您所提到的,Eclipse已正确打开index.php
,这是正常的,因为它在URL中直接引用,您可以在调试配置窗口中将其指出为启动文件。
Buth走得更远。您希望Eclipse如何理解,路由dispozitive
(其中 route 本身是完全Yii概念(或类似框架),而Eclipse / Xdebug / PHP对此一无所知)或{ {1}}网址部分对应于在文件系统中执行?r=dispozitive
文件并从中调用默认protected/SiteController.php
?因此它可以知道它应该在IDE中打开它,并可能在已定义的断点处停止执行。
这个过程和概念(路由)由Yii 100%创作并由内部完成,那么您希望Eclipse或Xdebug如何了解它呢?
正如我写的那样,我在调试Yii应用程序方面没有太多经验,但是从我发现的知识开始,我清楚地看到,如果他们使用任何类型的Xdebug,你就无法使用Xdebug调试PHP应用程序。 URL重写方法。这种技术(使用Xdebug进行调试)仅在应用程序中运行IMHO,其中URL更改直接反映应用程序内容中文件系统中的文件。
编辑:另外,检查您拥有的Eclipse版本(包)?它turns out,Helios包有一些错误,并且不会在断点处停止。这使调试过程变得毫无用处。您应该考虑使用Galileo Package Eclipse for PHP Developers代替。