MAC下phpstrom使用xdebug调试

来源:互联网 发布:淘宝整点秒杀在哪 编辑:程序博客网 时间:2024/05/16 09:19
OK~其实很多的PHPer觉得PHP这样的语言特性,在调试或者打印的时候 print_r(),echo,var_dump 等就可以了,但一旦要是涉及的更复杂的逻辑或者需要打印更多的变量时就会变得极为低效.这时候你就会羡慕像JAVA或者C# 那样可以断点调试的功能了,那么PHP可以实现断点调试吗?答案是肯定的.那么 这篇博客就是分享我今天使用PHP Xdebug 实现断点调试的小小经验. 有说的不对的或者不明白希望大家提出一起学习一起讨论.

我的配置环境?
1:PHPSTORM (PHP的IED)
2:MAC OS 
3:MAMP (包含Xdebug)
4:PHP(MAC系统自带)

第一步:(下载安装MAMP集成环境)
MAMP集成环境下载地址  https://www.mamp.info
安装完软件图标MAC+XDEBUG+PHPSTORM+POSTMAN <wbr>PHP实现断点调试

第二步:(修改php.ini让PHP支持Xdebug)
由于我使用的是 MAC系统自带的PHP 所以我的php.ini在  cd  /private/etc  这个目录下(因人而异只要找到你的php.ini配置文件即可)  
在终端模式下使用vim打开 sudo vim php.ini到最后一行 
MAC+XDEBUG+PHPSTORM+POSTMAN <wbr>PHP实现断点调试
添加如下几行配置:
[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

MAC+XDEBUG+PHPSTORM+POSTMAN <wbr>PHP实现断点调试


那么zend_extension就是指向Xdebug的扩展 我的目录就是安装了MAMP以后软件自带的Xdebug扩展,
xdebug.idekey="PHPSTORM"  则是指向了你的PHPSTORM IDE  这样你的PHPSTORM就可以捕获到这个断点事件了.

第三步:(配置你的PHPSTORM)
打开PHPStorm  command + ,  就可以打开设置界面  找到PHP一栏 让你的IDE 和你的PHP绑定起来.
由于我使用的是MAC系统自带PHP  所以我的PHP路径是/usr/bin/php(路径因人而异指向你自己的PHP即可)
MAC+XDEBUG+PHPSTORM+POSTMAN <wbr>PHP实现断点调试

MAC+XDEBUG+PHPSTORM+POSTMAN <wbr>PHP实现断点调试

接下来我们需要让PHPStorm开启Xdebug监听
找到PHP => Debug 将 Debug port: 设置为9000 如果你的9000端口被占用 你也可以改为9001,9002等 当然如果你改了端口  需要在php.ini里加一行 xdebug.remote_port = 9001  这样才能对应上Xdebug的监听端口. 至于localhost我使用9999端口是个人喜好.你们写自己的端口号即可

MAC+XDEBUG+PHPSTORM+POSTMAN <wbr>PHP实现断点调试

MAC+XDEBUG+PHPSTORM+POSTMAN <wbr>PHP实现断点调试

MAC+XDEBUG+PHPSTORM+POSTMAN <wbr>PHP实现断点调试


 OK 完成以上装备工作 你的Xdebug就已经配置完了.接下来让我们运行起来这个断点调试!
最后一步:(RUN DEBUG)
找到 PHPStorm RUN=>Start Listening for PHP Debug Connections(打开以后你的PHPStorm就会开始监听PHP了)

  MAC+XDEBUG+PHPSTORM+POSTMAN <wbr>PHP实现断点调试

接下来在代码里设置断点(比如你想在某一行查看它的变量值)

MAC+XDEBUG+PHPSTORM+POSTMAN <wbr>PHP实现断点调试


打开POSTMAN(谷歌浏览器的一个扩展工具可以用来模拟POST,GET等请求)

注意!
在你所请求的API参数中加入一个  XDEBUG_SESSION_START = PHPSTORM 这是为了告知 你的请求需要触发断点调试
MAC+XDEBUG+PHPSTORM+POSTMAN <wbr>PHP实现断点调试

send 以后 一旦触发了Xdebug  你就会被跳转回 你的PHPStorm IDE中
MAC+XDEBUG+PHPSTORM+POSTMAN <wbr>PHP实现断点调试


OK  这样你就可以随心所欲一步一步调试代码了.是不是很酷!哈哈哈哈