【问题标题】:Symfony, netbeans 6.8 and debugging a web pageSymfony、netbeans 6.8 和调试网页
【发布时间】:2010-01-22 16:26:32
【问题描述】:

我正在使用 Symfony (1.31) - 使用 Propel ORM 来构建网站。我最近从使用文本编辑器转移到 Netbeans (6.8) 作为我的开发环境。

来自编译语言 (C++) 背景,我习惯于在代码等中设置断点作为调试的一部分。我遇到的 Web 开发(至少使用 PHP)在很大程度上受到了打击和错过 - 至少可以说调试很混乱,使用 echo 语句,将内容记录到文件等。好吧,我听说可以调试 PHP(即设置断点等)。

我已经在网上搜索了文档以显示如何设置断点(比如在 MVC 层之一中),以便当通过浏览器打开相关页面时,断点会被命中,我可以单步执行代码(理想情况下,观察程序变量)。

这可以使用 Symfony 和 Netbeans 6.8 吗?

【问题讨论】:

  • 是的,这是可能的。顺便说一句,你设置了 xdebug 扩展 (xdebug.org) 了吗?

标签: netbeans symfony1


【解决方案1】:

似乎支持XDebug:http://netbeans.org/kb/docs/php/debugging.html

如果您有关于配置 XDebug 的具体问题:http://wiki.netbeans.org/HowToConfigureXDebug

更多关于 NetBeans 中 PHP 开发的有用文章:http://netbeans.org/kb/trails/php.html

希望对您有所帮助。

更新:刚刚安装了 NetBeans 6.8 并运行了配置,并且能够获得断点以与 XDebug 一起成功工作。 NetBeans 与 Symfony 的集成也非常巧妙,+1 来让我检查一下。

【讨论】:

  • Cyro,您能在这里简要介绍一下您是如何让断点与 Symfony、Netbeans 和 XDebug 一起工作的吗?此外,您运行了什么样的测试(即,您是否像我描述的那样对其进行了测试 - 即设置断点并打开页面?)。我期待您的回复,因为我真的希望能够做到这一点。
  • 使用 WAMP 为 PHP 5.2 安装 XDebug。将配置添加到 php.ini 并重新启动 Apache。检查 phpinfo() 以确保它正在加载(搜索“xdebug”)。向 index.php Web 控制器添加了测试回显语句。将我的项目设置为主项目。按 Ctrl+F5 开始调试。 NetBeans 在我的浏览器中启动我的项目 URL,但页面正在等待,返回到 NetBeans,它处于调试模式。按继续 (F5) 将执行推送到我的断点。现在 NetBeans 位于我的断点处,我可以查看 Watches、Variables 和 Call Stack 选项卡以获取更多信息或单步执行我的代码。就是这样。
  • 我刚刚在特定操作中使用断点对其进行了测试,并且它也可以在那里工作。一旦您处于调试模式,请使用断点访问您的操作 URL,并确保在 URL 之后附加 ?XDEBUG_SESSION_START=netbeans-xdebug,NetBeans 应该从请求的开头获取它。
【解决方案2】:

以下是帮助我调试 Symfony 应用程序的原因:

通过 apps/appname/config/settings.yml 启用日志记录和 Web 调试工具栏。注意:任何更改都需要清除缓存。

dev:
    .settings:
        web_debug:              true
        logging_enabled:        true

使用带有 pre 标签的 var_dump() 或 print_r() 从任何地方转储数据。添加出口;将允许您从控制器或其他任何地方转储变量。

echo '<pre>';
vardump($something);
echo '</pre>';
exit;

启用日志记录和记录消息。您也可以在任何地方访问记录器,但请确保为您的环境启用日志记录:

sfContext::getInstance()->getLogger()->info($message);

【讨论】:

    【解决方案3】:

    我已经使用Gubed 和 Quanta+ 作为 PHP 的步进调试器,不知道你是否可以让它与 Netbeans 一起工作,但我认为这更麻烦,值得。我发现我可以 for(i=0;i

    Xdebug 是一个非常有用的 PHP 扩展,它具有 remote debugger 并支持某些编辑器,尽管 Neatbeans 未列出。我没有使用 Xdebug 的远程调试元素(见上文),但我发现性能分析、代码覆盖率,尤其是改进的浏览器错误消息很有帮助。

    通常使用 Symfony,我发现我可以从堆栈跟踪或通过将项目放入记录器并使用 debug toolbarfiresymfony 拾取它们来获得我需要的大部分内容。

    【讨论】:

      【解决方案4】:

      Netbeans 7+ 在模型/动作中存在 xdebug 断点问题。您必须使用手动功能来设置断点。

      xdebug_break();
      

      【讨论】:

        猜你喜欢
        • 2011-04-08
        • 2011-02-04
        • 1970-01-01
        • 2011-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多