phpstorm+mamp pro用xdebug调试代码

使用PhpStorm IDE安装和配置MAMP
mamp pro默认安装了php,php扩展默认安装了xdebug. 因此,在phpstorm配置CLI Interpreter(命令行界面解释器) ,只需定位到/Applications/MAMP/bin/php/php7.1.8/bin/php目录下即可。如果php.ini中配置了xdebug,phpstorm会识别出来,显示如下:
这里写图片描述
。注意如果只是通过开启mamp pro的Xdebug,只会修改mamp pro自己的php.ini,不会修改真正的php.ini,那么phpstorm会显示Debugger: Not install.
好了,接下来,就可以开始断点调试代码了。

关于Xdebug
一、Xdebug工作原理(转自这里
1、IDE(如PhpStorm)已经集成了一个遵循BGDP的Xdebug插件,当开启它的时候, 会在本地开一个Xdebug调试服务,监听在调试器中所设置的端口上,默认是9000,这个服务就会监听所有到9000端口的链接。在PhpStorm中,位于:工具栏 > Run > Start / Stop Listening for PHP Xdebug Connetions。

2、当浏览器发送一个带 XDEBUG_SESSION_START 的参数的请求到服务器时,服务器接受后将其转到后端的php处理,如果php开启了xdebug模块,则会将debug信息转发到客户端IP的IDE的调试端口上。当参数或者cookie信息中不带 XDEBUG_SESSION_START ,则不会启动调试。这就为后续在浏览器中添加开关提供了可能。Xdebug的官方给出了一个示例图:很好的展示了相互调用关系。 这个示例图是绑定了ip,即使用了固定ip地址,xdebug.remote_connect_back = 0 ,也是 Xdebug 的默认方式,这种情况下,Xdebug 在收到调试通知时会读取配置 xdebug.remote_host 和 xdebug.remote_port ,默认是 localhost:9000,然后向这个端口发送通知,这种方式只适合单一客户端开发调试。
这里写图片描述
另外一种方式则是不绑定IP,Xdebug根据请求来源(REMOTE_HOST)来发起调试。示例图如下:
这里写图片描述
那从用户发起请求到,到IDE的整个流程图如下:
这里写图片描述
当用户的请求参数或者cookie中不带调试信息,数据流就是浏览器到Apache(或其他web容器)到PHP,如果加上了调试参数,则请求还会由PHP转给Xdebug处理,Xdebug再把信息转发给IDE,完成调试功能。
二、调试的几种场景:
1、本地调试
方式1:Chrome浏览器的xdebug helper扩展
方式2:使用mamp pro开启php.ini的xdebug,用phpstorm调试
2、远程调试
参考:PhpStorm Xdebug远程调试环境搭建原理分析及问题排查
三、调试的技巧
四、一些注意
调试状态下,PHP魔术变量输出的值是错误的,为什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值