我可以将Zend PDT(eclipse)链接到浏览器操作吗?

tra*_*ega 1 eclipse debugging eclipse-pdt zend-debugger

是否有可能在eclipse中配置Zend PDT调试器以类似于Eclipse调试器的方式从浏览器操作中获取断点?即设置断点,启动调试器,浏览站点,然后在命中时放入断点.

我可以调试单个脚本和网页,但是我正在尝试调试从网页调用的脚本.我正在使用Joomla,并希望能够在单击页面内容时遍历依赖堆栈.

提前感谢任何建议..!

tra*_*ega 7

我发现了如何做到这一点,但它很长.它使您可以像调试Java一样调试PHP,就像浏览站点一样,只有在遇到其中一个断点时才进入调试器.这是Linux的配置.

安装Zend Debugger

首先,您需要安装和配置Zend Debugger:

  • 确保安装了Eclipse PDT(PHP开发工具).如果不是:将此存储库添加到"帮助">"安装新软件..."中的源列表中:http://download.eclipse.org/releases/helios
  • 展开Programming Languages包并选择PHP Development Tools(PDT)SDK Feature.
  • 单击下一步并安装.
  • 通过将此存储库添加到源列表,以相同的方式安装Zend PDT:http: //downloads.z​​end.com/pdt
    • 展开Zend CE Features并选择Zend Debugger Feature,然后单击Next.
  • 重新启动Eclipse,然后转到Window> Preferences> PHP> Debug> Installed Debuggers以确保安装了Zend Debugger.
  • 配置php.ini指向ZendDebugger.so文件.

    • 第一种

      php5 -i | grep"Loaded Conf"

    到终端找到正确的php.ini文件,你需要编辑并在文本编辑器中打开它

    • 下一个类型

      找到ZendDebugger.so

    进入终端并将位置复制到php5调试器文件.

    • 将这些行添加到php.ini文件的底部:

      [Zend]
      Zend_extension ="[你的ZendDebugger.so文件的路径]"
      zend_debugger.allow_hosts ="127.0.0.1,[你的IP地址,如果需要]"
      zend_debugger.expose_remotely =总是
      替换你的locate命令和你的IP返回的路径地址.

  • 键入以重新启动PHP

    sudo /etc/init.d/apache2 restart

    进入终端.

  • 然后键入

    php5 -m

    命令进入终端以确保正确配置Zend Debugger.你会看到类似的东西:

    xmlreader
    xmlwriter
    Zend Debugger
    zip
    zlib

    [Zend Modules] Zend Debugger

    靠近转储的尽头.如果没有看到Zend Debugger,请确保编辑了正确的php.ini文件,并确保ZendDebugger.so文件的路径有效.确保重新启动PHP以进行任何传播更改.

配置Eclipse

接下来,您将必须配置Eclipse:

  • 首先转到Window> Preferences> PHP> PHP Executables并确保安装了最新的PHP CLI库并将其设置为默认值.
  • 接下来,通过转到Window> Open Perspective> Other> PHP Debug,在eclipse中添加PHP Debugging透视图.
  • 现在转到Window> Preferences> PHP> Debug,然后单击Configure Project Specific Settings.
  • 选择要调试的项目,然后单击"确定".

    • 选中"启用项目特定设置".
    • 这些是您需要的设置:

    PHP调试器:Zend调试器
    服务器:[项目的本地URL路径(应在hosts文件中配置)]
    PHP可执行文件:5.3.x(或更高版本)

    默认基本URL /基本路径:/
    自动生成的基本URL:http://[项目的本地 URL路径]

    • 取消选中Break at First Line选项,然后单击OK关闭配置窗口,然后在主PHP Debug页面上取消选中相同的选项.单击"应用"以保存设置.
  • 接下来转到Window> Preferences> PHP> PHP Servers并添加带有URL的新服务器配置

http:// [项目的本地 URL路径]

这应该与您在dev'中用于访问主页的主机配置中的URL相同.为配置命名并将其设置为默认值.单击Finish并单击OK然后重新启动Eclipse.

  • 接下来,转到窗口>首选项>常规> Web浏览器,选择使用外部Web浏览器,然后选择要在调试期间与之交互的浏览器.> 注意: >不要使用FIREFOX!Zend PDT与它绑定,如果不卸载并重新安装firefox,则无法将浏览器与调试器分离.Opera浏览器在Zend PDT中运行得最好,所以这里是如何添加它:
  • 安装Opera浏览器后,再次转到窗口>首选项>常规> Web浏览器设置,然后选择新建并使用以下参数:

    名称:Opera
    位置:/ usr/bin/opera
    参数:%URL%

    单击OK,选择Firefox(如果存在)并将其删除,然后检查Opera并单击OK.

  • 再次重启Eclipse,您就可以开始调试PHP了.

使用调试器

  • 在PHP透视图中,打开一个PHP文件,从Project菜单中选择Debug as> PHP Web Page,或者选择Debug图标旁边的向下箭头.
  • 您可能会看到一个警告窗口,要求您确认调试URL.删除基本URL后的eveything只留下:

    http:// [项目的本地 URL路径]

    作为URL并单击"确定".

  • 如果eclipse没有自动切换到PHP Debug Perspective,那么请手动切换到它.

  • 转到您的浏览器并导航到您在上面配置的URL.您可能需要向前运行调试器才能解析主页.有时,在完全绑定调试会话之前,您需要先刷新并运行调试器几次.
  • 您可以正常导航网站,调试器将在断点处插入您的代码.

故障排除

  • 当PHP调试会话启动时,会话有时会在页面加载之前结束,并且浏览器中的页面保持空白.尝试在调试堆栈视图中右键单击会话,然后选择"重新启动".
  • 首次启动调试会话时,请确保浏览器窗口中的URL显示为您配置的基本URL,即删除Zend附加到URL的所有调试器参数.从现在开始,网址应该干净利落.
  • 为了更顺畅的调试,在完成PHP开发之前,从PHP Debug透视图中删除所有已终止的调试会话.
  • 在PHP Debug透视图处于焦点时要小心避免关闭eclipse,因为它需要很长时间才能关闭.

  • 这是一个非常棒的帖子.这实际上帮助我调试了Xdebug,配置Eclipse部分使我的Xdebug工作.另请注意,我的Mac OSX Mountain Lion上没有php5命令,而是能够使用php运行相同的命令.再一次非常好的帖子.这应该在Stack Overflow中标记为Zend Debugger问题的指南 (2认同)