Xdebug与Sublime Text 2

uns*_*ero 3 php breakpoints xdebug sublimetext2

我正在尝试使用Sublime Text 2设置Xdebug以在我的本地计算机上调试PHP,但我无处可去.我用PHP 5.4运行MAMP.我在php.ini的末尾输入了这个:

[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.4.4/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_autostart=1
Run Code Online (Sandbox Code Playgroud)

Xdebug.so扩展随MAMP一起提供,我已经验证它位于php.ini文件中指定的位置.我可以在PHP信息中看到Xdebug信息.

在Sublime Text 2中,我安装了这个包,并将项目中的设置更改为:

{
    "folders":
    [
        {
            "path": "/Applications/MAMP/htdocs"
        }
    ],

    "settings": {
        "xdebug": { "url": "http://localhost" }
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以按SHIFT和F8调出Sublime Text 2中插件的菜单,并可以添加或删除断点(代码行左侧会出现一个灰点).当我点击"开始调试"时,它会打开一个浏览器,其中"?XDEBUG_SESSION_START = sublime.xdebug"字符串会附加到网址上.但我的断点没有做任何事情.

我已经尝试添加xdebug_break();到我的代码中,看看是否会停止程序,但事实并非如此.浏览器和IDE似乎根本没有连接......

有任何想法吗?

enr*_*rey 11

首先,Kindari的xdebug插件并不是你会感到高兴的东西.他把这个插件作为一个试验,在编写时学习了崇高的api,所以它充满了问题,硬编码的变量和东西.我最终放弃了它并卸载了这个插件,它只是没用(但它有效).恕我直言的最大缺陷之一是无法显示超过1级深度的数组变量.他在github上发布他几个月前将从头开始重写它,从那以后它似乎被抛弃了,但我仍在拼命等待新版本问世,我甚至考虑学习python并自己编写.

好吧,如果你不想尝试它,首先要确保Xdebug工作,通过尝试与其他一些Xdebug客户端.如果Xdebug在其他地方工作,请确保安装了python2.6,因为它不适用于2.7.如果您运行的是ubuntu 12.04,python2.6不在存储库中,那么从插件自述文件中可以找到Ubuntu 12.04的解决方法:

  1. 下载[http://packages.ubuntu.com/lucid/python2.6][python2.6].
  2. 提取它:

    dpkg-deb -x python2.6_2.6.5-1ubuntu6_i386.deb python2.6
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将解压缩的usr/lib/python2.6文件夹复制到{Sublime Text directory}/lib(=/usr/lib/sublime-text-2/lib /)

记住两件事:首先,有一个文件/usr/lib/sublime-text-2/lib/python26.zip,所以不要删除这个文件.第二,在你提取的.deb中,其中有usr/lib/python2.6,这就是你要复制的内容,而不是整个python2.6目录.所以,如果你在那个解压缩的.deb之外,

cp -r python2.6/usr/lib/python2.6 /usr/lib/sublime-text-2/lib
Run Code Online (Sandbox Code Playgroud)

可能会做这个工作.我在这里不太确定,如果你应该复制那个python2.6/usr/lib/python2.6文件夹或只是它的内容,我确实复制了它们并没有搞砸任何东西.