当前位置: 首页 > 后端技术 > PHP

phpstorm使用Xdebug调试代码

时间:2023-03-29 20:09:09 PHP

用过Java、C#等静态语言的同学经常在调试代码的时候打个断点,然后轻松调试,而PHPer经常使用echo$a;exit;在调试代码的时候,很不方便,有的同学有时断点后不删除断点就commit,造成很多麻烦。有没有办法更优雅地调试?当然有,这里有一个PHP模块xdebug,xdebug安装教程,用它来调试PHP代码,可以有效减少工作量和BUG调试时间,尤其是在一些复杂的程序中,光看ProblemXdebug是找不到的是一个开源的PHP程序调试器(即Debug工具),可以用来跟踪、调试和分析PHP程序的运行状态。如果是集成环境,比如phpstudy,就不用自己安装了,直接environment->PHP->settings(不要搞混PHP版本号)设置这里的端口号,自己调就好了,我设置9001查看phpinfo,搜索,如果有xdebug模块,再打开phpstorm,ctrl+alt+s打开设置,进入调试设置,改端口到你之前设置的端口号(其他默认即可),当然也可以打开,不懂英文的可以翻译一下)点击打开Servers,点击+新建一个,名称可选,Host填写你要调试的域名(比如localhost,我这里填一个虚拟域名),端口号默认80,然后右上角有个EditConfigurations,点击即可打开点击加号,随意添加一个PHPWebPagename,选择刚才配置的服务器,startUrl为sta的接口地址rt,如果我要调试一个下单的界面,那我就填了,然后点了箭头所指的Validate。第一个选项是调试本地,第二个是调试远程。遥控器这里就不说了,免得大家误会。在第一个输入框中填写你自己的。项目目录,因为我的是tinkphp框架,我指向的是项目目录的public目录,其次填写自己的域名,这里编辑器自动填写Validate按钮,phpstorm会帮忙检查配置是否正确,如果有错误请根据提示修改最后点击右上角的bug,会自动打开浏览器进行调试,如果bug旁边的手机变成绿色,说明监听的是9001端口,然后phpstorm会自动打开debug控制台,点击箭头自动进入下一步,点击左边红点打断点如果要用postman怎么办?带上这个参数,把这对key-vlue加入到postman的参数中,点击send自动开始调试(postman会一直处于发送状态,直到断点调试完成)。希望我写的教程能以最短的步骤让读者运行xdebug,忽略一些细节。有兴趣的同学可以去网上找更详细的配置和说明Breakpoint,当代码执行到断点的时候,会停止这个按钮,一行代码会执行,但是遇到一个函数,整个函数就会被直接执行。这个按钮也是执行一行代码,可以进入要执行的函数并跳转到下一个断点。一页可以清晰查看所有变量,第二页可以打印变量,甚至可以执行对象函数方法(贼有用)。第三页是查看输出问题总结断点调试,Apache在PHP脚本执行超时后自动断开连接,然后返回500错误。在apache的http.conf文件中添加FcgidIOTimeout6000