记 PHPSTORM Xdebug

写在前面

PHP 因为天生自带“热加载”的优势,可能很多 phper 都很少使用 php 的 debug 功能吧。反正我已经很久很久很久没有用过 debug 了,回忆起来也该有5,6年了。。。
但对于新手 phper 来说,没有什么比 debug 更友好了。毕竟以前入门 php 的时候,它也是陪我走了不少岁月出了不少力,说是排坑解决问题的一大神器也不为过了。
下面简单记录一下 phpstorm Xdebug 的配置使用,希望对你有所帮助!

原理简要

记 PHPSTORM Xdebug
简单 C/S 理解:一个客户端(Client)、一个服务端(Server)

检查安装

检查并安装当前 php 版本的 Xdebug 扩展,php 扩展安装就不说了

D:\www\laravel5>php -m | find "Xdebug"
Xdebug

配置 php.ini debug 参数

[XDebug]
zend_extension="php_xdebug.dll"
xdebug.idekey="PHPSTORM"
xdebug.remote_enable =1
xdebug.remote_handler =dbgp
xdebug.remote_host =127.0.0.1
xdebug.remote_port=9011
xdebug.max_nesting_level=256
xdebug.mode=debug,trace

PHPSTORM 设置

进入phpstorm设置菜单(Ctrl+Alt+S),选择 Languages & Frameworks => PHP, 设置 CLI Interpreters;
Xdebug 记
Xdebug 记

选择 PHP => Debug, 设置debug端口,同 php.ini 设置的 xdebug.remote_port=9011
Xdebug 记

当前页面点击 Validate 按钮,验证是否配置成功
Xdebug 记

选择 PHP => Server, 配置server
Xdebug 记

设置 Debug Configurations
Xdebug 记

到这里就基本就ok了,最后写个 demo 开启监听,编辑断点,来试试 debug 的效果吧
Xdebug 记

接口调试

使用接口工具请求 API 时需添加参数:XDEBUG_SESSION_START=TRUE
如:laravel5.com/api/test?XDEBUG_SESSION_START=TRUE
或者添加站点Cookie: XDEBUG_SESSION=TRUE;
Xdebug 记
浏览器调试请安装 Xdebug helper 插件
命令行的 debug 就更简单了,实际就是配置一个 php 运行脚本
如:生成一个 artisan 测试脚本,打好断点,运行 debug 即可
Xdebug 记

疑问

如何配置远程debug呢?
在上面的“设置 Debug Configurations”中,我选择的是“PHP Web Page”。还可以选择“PHP Remote Debug”,也支持本地 debug, 同时还支持远程 debug, 此选项需多配置一个 IDE Key。
远程 debug 其实是一样的,稍微多一步配置:远程代码与本地代码的映射,仅此而已!
记 PHPSTORM Xdebug
记 PHPSTORM Xdebug
因远程 debug 几乎很少用到,就不详细截图了。有兴趣的小伙伴可以自己试试,说不定哪天就用到了。。。

附录

参考链接:www.jetbrains.com/help/phpstorm/20...

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1
QIN秦同学
本地用docker起的环境,好不容易调通 debug了,但是不能下一步、下一步那样调试,也是无语了。
4个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!