关于
Buy Me a Coffee
归档
友链
猫咪
RSS
后台
切换模式
返回顶部
首页
说说
日常
开发
游戏
资源
首页
说说
日常
开发
游戏
资源
关于
Buy Me a Coffee
归档
友链
猫咪
RSS
后台
在Sublime中使用XDebug调试PHP代码
开发
·
2018-11-10
·
更新于 2021-11-23
LiesAuer
### 添加PHP至PATH环境变量 略过  ### 下载配置XDebug 在`php.ini`中配置以下XDebug内容,这里我们只做了最简化的配置。 ``` [XDebug] # 根据具体的PHP版本以及系统选择相对应的XDebug扩展 zend_extension=xdebug.so xdebug.remote_enable=1 xdebug.remote_host="localhost" xdebug.port=9000 xdebug.remote_handler="dbgp" ```  执行`php -m | grep xdebug`检查XDebug是否已成功开启,个别系统可能不存在`grep`命令,直接执行`php -m`,有看到xdebug就表示成功开启XDebug  ### Build System 在Sublime中选择菜单:Tools > Build System > New Build System,填入以下内容,保存至`Packages/User/PHP.sublime-build` ```json { "cmd": ["php", "$file"], "file_regex": "php$", "selector": "source.php" } ``` ### 运行PHP脚本 我们随便写个HelloWorld脚本,然后`Ctrl+B`直接运行该PHP脚本  ### 安装Xdebug Client插件  ### 使用Xdebug Client 在Sublime使用`Win+Shift+F9`启动Xdebug调试,然后我们`cd`到我们刚刚的那个HelloWorld脚本的位置,然后启动PHP内置的服务器来测试XDebug ```shell cd path/to/helloworld php -S 0.0.0.0:8080 ```  然后在浏览器中输入当前的脚本url,注意要带上后面的`?XDEBUG_SESSION_START=sublime.xdebug`,至于为什么要带上,请了解XDebug的多种启动方式,可通过配置Xdebug Client来实现自动打开浏览器并且自动拼接  然后我们切回到Sublime,可以看到已经成功命中了断点  但是下面的监视器却空空如也  这是因为Xdebug Client的默认配置导致生成的xml数据格式有错,导致无法和Xdebug通讯,所以我们要改下配置,点击菜单Tools > Xdebug > Settings - User,粘贴以下内容,`super_globals`一定要设为`false`(导致出错的原因) ``` { "close_on_stop": true, "super_globals": false } ``` 但是这样我们就无法监视到超级变量,所以我们要在代码里写些取巧的代码 ```php $SERVER = &$_SERVER; $GLOBAL = &$GLOBALS; $GET = &$_GET; $POST = &$_POST; ``` 右击 > Xdebug > Stop,然后在浏览器重新刷新下再切回Sublime,可以看到已经成功监视到超级变量  至此,我们已经能在Sublime中调试web程序了,右击 > Xdebug > Stop,把PHP内置服务器关了。 然后我们`Ctrl+B`,可以发现,脚本直接执行了,并没有启动XDebug  这是因为以CLI模式运行脚本需要不一样的方式启动XDebug,还记得我们刚开始创建的PHP Build System吗?我们只要在里面添加一个环境变量即可启动XDebug ``` { "cmd": ["php", "$file"], "file_regex": "php$", "selector": "source.php", "env": { "XDEBUG_CONFIG": "idekey=sublime.xdebug" } } ```  然后重新`Ctrl+B`,可以看到已经成功启动XDebug并命中断点  但是这样的话每次更新Xdebug的状态都会把我们的执行输出窗口给关了,我们可以点击左下角的图标,然后选择Build Results,这样就能重新弹出输出窗口,但是我们每执行一步代码又把窗口关了,又要自己重新打开    这里我对Xdebug Client进行了一些小修改,让其在更新完状态后自动重新弹出输出窗口,下面是效果图,附件在后面  ### 附件 解压出来后直接把`Installed Packages`里面的`Xdebug Client.sublime-package`覆盖,然后重启Sublime,完事 [Xdebug Client.sublime-package.zip](https://storage.liesauer.net/2018/11/2339499466.zip)
如果您觉得文章或项目对您有帮助,戳我请博主喝一杯咖啡叭!
取消回复
提交评论
瞅一瞅叭
个人接活
扒接口、爬虫、JS逆向
域名出售
uterminal.ai
服务器推荐
RackNerd 2C2G $20.98/年(美国 隐藏款)
狗云 1C0.75G ¥150/年(香港 BGP)
最新评论
DOL: 大佬,这个是不是抓不了群组消息,能读到群组的ID,但是下载不了
VIP: hi,QQ群什么时候再开vip,不出意外的话,进不了群mod拿不到
fff: 还有什么办法能把我的频道列举出来
fff: 大佬我也是这样https://ibb.co/85yyYzN
www: 配置文件填写后,运行exe 显示登录信息,然后就卡住了 ┌─...
从良未遂: 你好,我接入cloudflare后发现修改主题、发表文章、回复评...
colin: 所以用 windows 来开发是原罪
关于站长
广东 佛山
liesauer#liesauer.net
LiesAuer
CC BY-NC-SA 4.0
粤ICP备16094588号-1
萌ICP备20245567号
Theme
Jasmine
by
Kent Liao