phpstorm xdebug与symfony2项目

时间:2015-04-16 09:59:40

标签: php symfony phpstorm xdebug

我正在尝试使用xdebug和phpstorm调试symfony2应用程序。

我的本​​地开发环境是Ubuntu 14.04,apache2,Xdebug版本是2.2.7

我正在使用以下指南处理另一个php(不是symfony2)项目:

https://www.jetbrains.com/phpstorm/help/configuring-xdebug.html

https://confluence.jetbrains.com/display/PhpStorm/Zero-configuration+Web+Application+Debugging+with+Xdebug+and+PhpStorm

当我执行bookmarlet来设置cookie并开始调试这个symfony2项目时,phpstorm检测到传入连接(我接受),但没有其他事情发生。它不会在任何断点处停止。

我有symfony2 phpstorm插件。我试图禁用它,也没有任何结果。

answer对我来说很好看,但它也没有诀窍

我尝试的最后一件事是更改服务器调试配置,禁用路径映射。这样phpstorm就会开始调试,但它会在app_dev.php文件中中断而不是我设置的任何断点。

我被困在这里,任何想法都是appreacite

更新

更多信息我没有提到:

  • 我正在使用firefox我正在尝试调试dev环境
  • 断点是我自己的控制器中的一个动作,而不是供应商的动作。

更新

这是我的xdebug配置

[XDebug]
zend_extension="/usr/lib/php5/20121212/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_port="9000"
xdebug.profiler_enable=1
xdebug.profiler_output_dir="<AMP home\tmp>"

5 个答案:

答案 0 :(得分:10)

我不知道您使用的是哪种浏览器,但是,使用Chrome,我使用的是Xdebug帮助扩展程序。

安装扩展程序后,右键单击它&gt;选项并选择PHPStorm作为IDE。

然后,使用调试附近的按钮开始侦听PHPStorm上的连接。

修改

这是我的XDebug配置:

zend_extension=/usr/lib/php5/20121212/xdebug.so
xdebug.max_nesting_level = 1000
xdebug.collect_params = 1
xdebug.collect_return = 1
xdebug.remote_enable = 1

您确定XDebug已正确安装在您的计算机上吗?

PHPStorm&gt;时Run&gt; Edit Configurations...,添加一个PHP Web应用程序调试配置文件并以这种方式填写:

  • 名称:Acme项目
  • 服务器:apache2(您可能需要添加自己的名称,端口,地址,调试程序)
  • 起始网址:/app_dev.php
  • 浏览器:默认

按OK即可完成!

答案 1 :(得分:7)

我有一个类似的问题再次被证明是一个映射问题,使用PHPStorm远程调试Symfony 2项目。

如果PHPStorm无法映射src文件位置,它将在app_dev.php的第一行代码中断(如果你设置了'Break on first line'),然后继续直接通过设置的任何断点/ src(例如控制器,模型等)并且不标记任何错误。

  1. 转到设置 - &gt;语言与框架 - &gt; PHP - &gt;服务器
  2. 在左中窗格中选择您的服务器(或使用'+'添加)
  3. 选中'使用路径映射(选择服务器是否为远程服务器或使用符号链接)'
  4. 添加映射,以便映射/ app,/ src和/ web。这些可以是单独的映射,但如果可能的话,最好设置更高级别的映射/覆盖它们。
  5. 一旦PHPStorm可以映射这些路径,它就会停止和断点,并且可以开始有意义的调试。

答案 2 :(得分:3)

这是一个映射问题。以下是完成技巧的步骤

  1. 在设置&gt;下禁用路径映射语言与框架&gt; PHP&gt;服务器&gt;取消选中&#34;使用路径映射
  2. 开始调试
  3. 着名的“远程文件路径”路径/ to / script / on / the / server.php'未映射到项目中的任何文件路径“终于出现
  4. 然后,我可以按照official guide设置路径映射
  5. 中的“疑难解答”部分进行操作

    希望这对其他人有帮助

答案 3 :(得分:2)

如果您发现PHPStorm不断要求映射,请尝试在项目的最高层创建映射,如@stanhope所述,这应该足够了。

我的第一个映射被错误地设置为/ web中的app_dev.php文件,这意味着IDE一直要求我映射供应商目录中的文件。

<强> e.g。 /vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Response.php

enter image description here

答案 4 :(得分:1)

我还必须注释掉类缓存的加载(symfony 2.7)。我暂时在web/app_dev.php

中做了
//$kernel->loadClassCache();

否则调试发生在bootstrap.php.cache或断点不起作用。