OK~其实很多的PHPer觉得PHP这样的语言特性,在调试或者打印的时候 print_r(),echo,var_dump 等就可以了,但一旦要是涉及的更复杂的逻辑或者需要打印更多的变量时就会变得极为低效.这时候你就会羡慕像JAVA或者C# 那样可以断点调试的功能了,那么PHP可以实现断点调试吗?答案是肯定的.那么 这篇博客就是分享我今天使用PHP Xdebug 实现断点调试的小小经验. 有说的不对的或者不明白希望大家提出一起学习一起讨论.
接下来我们需要让PHPStorm开启Xdebug监听
我的配置环境?
1:PHPSTORM (PHP的IED)
2:MAC OS
3:
MAMP (包含
Xdebug
)
4:PHP(MAC系统自带)
第一步:(下载安装MAMP集成环境)
MAMP集成环境下载地址
https://www.mamp.info
第二步:(修改php.ini让PHP支持Xdebug)
由于我使用的是 MAC系统自带的PHP 所以我的php.ini在
cd
/private/etc
这个目录下(因人而异只要找到你的php.ini配置文件即可)
在终端模式下使用vim打开
sudo vim php.ini到最后一行
添加如下几行配置:
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.5.26/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"
xdebug.remote_enable=on
xdebug.idekey="PHPSTORM"
xdebug.remote_handler="dbgp"
xdebug.remote_mode="req"
xdebug.max_nesting_level=600
那么
zend_extension就是指向Xdebug的扩展 我的目录就是安装了MAMP以后软件自带的Xdebug扩展,
xdebug.idekey="PHPSTORM" 则是指向了你的PHPSTORM IDE 这样你的PHPSTORM就可以捕获到这个断点事件了.
第三步:(配置你的PHPSTORM)
打开PHPStorm command + , 就可以打开设置界面 找到PHP一栏 让你的IDE 和你的PHP绑定起来.
由于我使用的是MAC系统自带PHP 所以我的PHP路径是/usr/bin/php(路径因人而异指向你自己的PHP即可)

接下来我们需要让PHPStorm开启Xdebug监听
找到PHP => Debug 将 Debug port: 设置为9000 如果你的9000端口被占用 你也可以改为9001,9002等 当然如果你改了端口
需要在php.ini里加一行
xdebug.remote_port = 9001 这样才能对应上Xdebug的监听端口. 至于localhost我使用9999端口是个人喜好.你们写自己的端口号即可
OK 完成以上装备工作 你的Xdebug就已经配置完了.接下来让我们运行起来这个断点调试!
打开POSTMAN(谷歌浏览器的一个扩展工具可以用来模拟POST,GET等请求)



最后一步:(RUN DEBUG)
找到 PHPStorm RUN=>Start Listening for PHP Debug Connections(打开以后你的PHPStorm就会开始监听PHP了)
接下来在代码里设置断点(比如你想在某一行查看它的变量值)
注意!
在你所请求的API参数中加入一个
XDEBUG_SESSION_START =
PHPSTORM 这是为了告知 你的请求需要触发断点调试
OK
这样你就可以随心所欲一步一步调试代码了.是不是很酷!哈哈哈哈