用过 Java、C# 等静态语言的同学调试代码经常是打个断点,然后轻松调试,而 PHPer 调试代码时经常是
echo $a;exit;
非常的不方便,有的同学有时候打完断点没删就给 commit 上去了,这就造成了很多困扰,有没有办法更优雅的调试呢?那当然有的,这里用到一个 PHP 模块 xdebug,xdebug 安装教程,使用它进行 HP 代码调试,能有效减少工作量和 BUG 调试时间,特别是在某些复杂的程序中,光靠看都无法找出问题
Xdebug 是一个开放源代码的 PHP 程序调试器 (即一个 Debug 工具),可以用来跟踪,调试和分析 PHP 程序的运行状况。
如果是集成环境,比如 phpstudy,就不需要自己安装了,直接环境 ->PHP-> 设置(PHP 版本号别搞混了)
这里设置下端口号,凭自己喜好就行,我设置了 9001
查看 phpinfo,搜索下,有 xdebug 模块就行了
接下来打开 phpstorm,ctrl+alt+s 打开设置
来到 debug 设置,将端口改成前面你设置的端口号(其他默认即可,当然也可以开启,看不懂英文可以翻译一下)
在点开 Servers,点 + 号新建一个,名字随意,Host 填自己要 Debug 的域名(比如 localhost, 我这里填了一个虚拟域名),端口号默认 80 即可
然后右上角有一个 Edit Configurations,点击打开
点击加号,添加一个 PHP Web Page
name 随意,Server 选刚才你配置的,startUrl 是启动的接口地址,如果我要 debug 一个下单的接口,于是我把他填写了进去,然后点击箭头所指向的 Validate
第一个选项是调试本地的,第二个是调试远程的,我这里远程不讲了,免得搞晕你们
第一个输入框填写自己的项目目录,因为我这个是 tinkphp 框架,我把他指向了项目目录的 public 目录
第二个填写自己的域名,这里编辑器自动帮忙填写了
点击 Validate 按钮,phpstorm 会帮忙检测配置是否正确,如果有错请按照提示修改
最后点击右上角的这只臭虫,会自动打开浏览器进行调试,臭虫旁边的电话机如果变绿了表示正在监听 9001 端口
这时 phpstorm 会自动打开 debug 控制台,点击箭头自动下一步,左边点击红点可以打断点
如果想用 postman 呢?
把这个参数拿过来
把这对 key-vlue 加入 postman 的参数内,点击 send 自动开启调试(postman 会一直处于发送状态中,直至断点调试完毕)
debug 控制台简单说明
左边可以打断点,当代码执行到断点时会停止
这个按钮点一下,会执行一行代码,但遇到函数会直接执行整个函数
这个按钮也是执行一行代码,可以进入函数内部执行
跳到下一个断点
第一个页面可以很清晰的查看所有变量
第二个页面可以打印变量,甚至可以执行对象函数方法(贼有用)
第三个页面是查看输出
问题总结
断点调试时,PHP 脚本执行超时后 Apache 自动断开连接,然后返回一个 500 错误
在 apache 的 http.conf 文件加入
FcgidIOTimeout 6000
更多PHP内容请访问:
腾讯T3-T4标准精品PHP架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)
以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群点击此处。
网友评论