关于
Buy Me a Coffee
归档
友链
猫咪
RSS
后台
切换模式
返回顶部
首页
说说
日常
开发
游戏
资源
虚拟货币
首页
说说
日常
开发
游戏
资源
虚拟货币
关于
Buy Me a Coffee
归档
友链
猫咪
RSS
后台
在Sublime中使用XDebug调试PHP代码
开发
·
2018-11-10
·
更新于 2021-11-23
LiesAuer
### 添加PHP至PATH环境变量 略过 ![WX20181110-091621@2x.png](https://storage.liesauer.net/2018/11/2874912512.png) ### 下载配置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" ``` ![WX20181110-091801@2x.png](https://storage.liesauer.net/2018/11/1913145265.png) 执行`php -m | grep xdebug`检查XDebug是否已成功开启,个别系统可能不存在`grep`命令,直接执行`php -m`,有看到xdebug就表示成功开启XDebug ![WX20181110-092131@2x.png](https://storage.liesauer.net/2018/11/1488862226.png) ### 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脚本 ![WX20181110-091509@2x.png](https://storage.liesauer.net/2018/11/1576624690.png) ### 安装Xdebug Client插件 ![WX20181110-092207@2x.png](https://storage.liesauer.net/2018/11/4131320151.png) ### 使用Xdebug Client 在Sublime使用`Win+Shift+F9`启动Xdebug调试,然后我们`cd`到我们刚刚的那个HelloWorld脚本的位置,然后启动PHP内置的服务器来测试XDebug ```shell cd path/to/helloworld php -S 0.0.0.0:8080 ``` ![WX20181110-123544@2x.png](https://storage.liesauer.net/2018/11/2146485980.png) 然后在浏览器中输入当前的脚本url,注意要带上后面的`?XDEBUG_SESSION_START=sublime.xdebug`,至于为什么要带上,请了解XDebug的多种启动方式,可通过配置Xdebug Client来实现自动打开浏览器并且自动拼接 ![WX20181110-123623@2x.png](https://storage.liesauer.net/2018/11/551899779.png) 然后我们切回到Sublime,可以看到已经成功命中了断点 ![WX20181110-123633@2x.png](https://storage.liesauer.net/2018/11/2160359616.png) 但是下面的监视器却空空如也 ![WX20181110-123641@2x.png](https://storage.liesauer.net/2018/11/2431175664.png) 这是因为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,可以看到已经成功监视到超级变量 ![WX20181110-123928@2x.png](https://storage.liesauer.net/2018/11/1959623328.png) 至此,我们已经能在Sublime中调试web程序了,右击 > Xdebug > Stop,把PHP内置服务器关了。 然后我们`Ctrl+B`,可以发现,脚本直接执行了,并没有启动XDebug ![WX20181110-124000@2x.png](https://storage.liesauer.net/2018/11/1474102529.png) 这是因为以CLI模式运行脚本需要不一样的方式启动XDebug,还记得我们刚开始创建的PHP Build System吗?我们只要在里面添加一个环境变量即可启动XDebug ``` { "cmd": ["php", "$file"], "file_regex": "php$", "selector": "source.php", "env": { "XDEBUG_CONFIG": "idekey=sublime.xdebug" } } ``` ![WX20181110-124308@2x.png](https://storage.liesauer.net/2018/11/409733138.png) 然后重新`Ctrl+B`,可以看到已经成功启动XDebug并命中断点 ![WX20181110-124435@2x.png](https://storage.liesauer.net/2018/11/3463685026.png) 但是这样的话每次更新Xdebug的状态都会把我们的执行输出窗口给关了,我们可以点击左下角的图标,然后选择Build Results,这样就能重新弹出输出窗口,但是我们每执行一步代码又把窗口关了,又要自己重新打开 ![WX20181110-124455@2x.png](https://storage.liesauer.net/2018/11/1978981998.png) ![WX20181110-124548@2x.png](https://storage.liesauer.net/2018/11/1363673991.png) ![WX20181110-124633@2x.png](https://storage.liesauer.net/2018/11/4154173080.png) 这里我对Xdebug Client进行了一些小修改,让其在更新完状态后自动重新弹出输出窗口,下面是效果图,附件在后面 ![222.gif](https://storage.liesauer.net/2018/11/3408916066.gif) ### 附件 解压出来后直接把`Installed Packages`里面的`Xdebug Client.sublime-package`覆盖,然后重启Sublime,完事 [Xdebug Client.sublime-package.zip](https://storage.liesauer.net/2018/11/2339499466.zip)
如果您觉得文章或项目对您有帮助,戳我请博主喝一杯咖啡叭!
取消回复
提交评论
瞅一瞅叭
域名出售
uterminal.ai
服务器推荐
RackNerd 2C2G $20.98/年(美国 隐藏款)
狗云 1C0.75G ¥150/年(香港 BGP)
最新评论
tinker: 为什么运行一段时间就会停止,重启又恢复!没有报错信息,频道信息和...
pansoo: 大佬,这个只能下载文件吗?能不能保存频道消息
Miller: 最好再多加一个查漏补缺的功能(捂脸(/ω\)),因为抓取了3天才...
Miller: 大佬,好像不会爬取jpeg文件,图片和视频数量对不上,是不是图片...
cola: 大佬,可以爬取电报频道的评论内容嘛
Miller: 大佬我终于会了,用cmd命令cd /d G:\cco,感谢大佬指点!
Miller: https://img13.chkaja.com/files/2...
关于站长
广东 佛山
liesauer#liesauer.net
LiesAuer
CC BY-NC-SA 4.0
粤ICP备16094588号-1
萌ICP备20245567号
Theme
Jasmine
by
Kent Liao