phpstorm 使用 Xdebug 调试代码

摘要:
我们不能仅仅通过查看它来发现问题。XDebug是一个开源PHP调试器(即调试工具)。然后单击箭头指向“验证”。第一个选项是在本地调试。在这里,编辑器会自动填写并单击Validate按钮,这将自动打开浏览器进行调试。如果错误旁边的电话变为绿色,则表示它正在监听端口9001。此时,phpstrom将自动打开调试控制台,单击发送以自动启动调试(邮递员将始终处于发送状态)。

用过Java、C#等静态语言的同学调试代码经常是打个断点,然后轻松调试,而PHPer调试代码时经常是

echo $a;exit;

非常的不方便,有的同学有时候打完断点没删就给commit上去了,这就造成了很多困扰,有没有办法更优雅的调试呢?那当然有的,这里用到一个PHP模块xdebug,xdebug安装教程,使用它进行PHP代码调试,能有效减少工作量和BUG调试时间,特别是在某些复杂的程序中,光靠看都无法找出问题

Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。

  • 如果是集成环境,比如phpstudy,就不需要自己安装了,直接环境->PHP->设置(PHP版本号别搞混了
    phpstorm 使用 Xdebug 调试代码第1张
  • 这里设置下端口号,凭自己喜好就行,我设置了9001
    phpstorm 使用 Xdebug 调试代码第2张
  • 查看phpinfo,搜索下,有xdebug模块就行了

接下来打开phpstorm,ctrl+alt+s打开设置

来到debug设置,将端口改成前面你设置的端口号(其他默认即可,当然也可以开启,看不懂英文可以翻译一下)

phpstorm 使用 Xdebug 调试代码第3张

在点开Servers,点+号新建一个,名字随意,Host填自己要Debug的域名(比如localhost,我这里填了一个虚拟域名),端口号默认80即可

phpstorm 使用 Xdebug 调试代码第4张

然后右上角有一个Edit Configurations,点击打开

phpstorm 使用 Xdebug 调试代码第5张

点击加号,添加一个PHP Web Page

phpstorm 使用 Xdebug 调试代码第6张

name随意,Server选刚才你配置的,startUrl是启动的接口地址,如果我要debug一个下单的接口,于是我把他填写了进去,然后点击箭头所指向的Validate

phpstorm 使用 Xdebug 调试代码第7张

第一个选项是调试本地的,第二个是调试远程的,我这里远程不讲了,免得搞晕你们

第一个输入框填写自己的项目目录,因为我这个是tinkphp框架,我把他指向了项目目录的public目录

第二个填写自己的域名,这里编辑器自动帮忙填写了

phpstorm 使用 Xdebug 调试代码第8张

点击Validate按钮,phpstorm会帮忙检测配置是否正确,如果有错请按照提示修改

phpstorm 使用 Xdebug 调试代码第9张

最后点击右上角的这只臭虫,会自动打开浏览器进行调试,臭虫旁边的电话机如果变绿了表示正在监听9001端口

phpstorm 使用 Xdebug 调试代码第10张

这时phpstorm会自动打开debug控制台,点击箭头自动下一步,左边点击红点可以打断点

phpstorm 使用 Xdebug 调试代码第11张

如果想用postman呢?

把这个参数拿过来
phpstorm 使用 Xdebug 调试代码第12张

把这对key-vlue加入postman的参数内,点击send自动开启调试(postman会一直处于发送状态中,直至断点调试完毕)

phpstorm 使用 Xdebug 调试代码第13张

我写的教程希望以最简短的步骤让读者能运行起xdebug,某些细节方面就忽略了,有兴趣的同学可以去网上查找更详细的配置和说明(当然没兴趣)


debug控制台简单说明
  • 左边可以打断点,当代码执行到断点时会停止
    phpstorm 使用 Xdebug 调试代码第14张
  • 这个按钮点一下,会执行一行代码,但遇到函数会直接执行整个函数
    phpstorm 使用 Xdebug 调试代码第15张
  • 这个按钮也是执行一行代码,可以进入函数内部执行
    phpstorm 使用 Xdebug 调试代码第16张
  • 跳到下一个断点
    phpstorm 使用 Xdebug 调试代码第17张
  • 第一个页面可以很清晰的查看所有变量
    phpstorm 使用 Xdebug 调试代码第18张
  • 第二个页面可以打印变量,甚至可以执行对象函数方法(贼有用)
    phpstorm 使用 Xdebug 调试代码第19张
  • 第三个页面是查看输出
    phpstorm 使用 Xdebug 调试代码第20张
问题总结
  1. 断点调试时,PHP脚本执行超时后Apache自动断开连接,然后返回一个500错误

在apache的http.conf文件加入

FcgidIOTimeout 6000

免责声明:文章转载自《phpstorm 使用 Xdebug 调试代码》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇屏幕事件控制器Oracle442个应用场景-----------角色管理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

VSCode调试vue项目

先决条件 首先你必须安装好 Chrome 和 VS Code。同时请确保自己在 VS Code 中安装了 Debugger for Chrome 扩展的最新版本。 在使用 VS Code 调试 Vue 组件之前,我们需要更新 webpack 配置以构建 source map。这会确保我们在一个应用中调试,即便资源已经被 webpack 优化过了也没关系。...

CSS总结div中的内容垂直居中的五种方法

一、行高(line-height)法 如果要垂直居中的只有一行或几个文字,那它的制作最为简单,只要让文字的行高和容器的高度相同即可,比如: p { height:30px; line-height:30px; width:100px; overflow:hidden; } 这段代码可以达到让文字在段落中垂直居中的效果。 二、内边距(padding)法 另一...

C# Winform利用POST传值方式模拟表单提交数据(Winform与网页交互)

其原理是,利用winfrom模拟表单提交数据。将要提交的參数提交给网页,网页运行代码。得到数据。然后Winform程序将网页的全部源码读取下来。这样就达到windows应用程序和web应用程序之间传參和现实数据的效果了。 ­     首先创建一个windows应用程序和web应用程序。 ­     在web应用程序中,将网页切换到源码并把源码中一些无用的...

Android jdb debug

在ubuntu上android的debug的方式有很多种,可以用eclipse,android studio。但是有的时候,为了方便也可以用命令行去debug。下面列出命令行debug的过程 xxx:~$ cd source/xxx:~/source$ cd packages/apps/Settings/xx:~/source/packages/apps/...

chrome 调试工具使用

目录 chrome 调试工具使用 断点调试 代码断点 条件断点 管理代码断点 DOM断点 XHR/Fetch 断点 事件监听器断点 异常断点 进步执行代码 查看当前执行上下文 查看当前调用堆栈 观察自定义表达式 chrome 调试工具使用 断点调试 代码断点1、打开调试工具(Ctrl/Cmd + Shift + C)。 2、单击 Sources...

代码注入漏洞

代码注入 维基百科,自由的百科全书     跳到导航跳到搜索 代码注入(Code injection)是一种肇因于处理非法数据的计算机臭虫应用。代码注入可被攻击者用来导入代码到某特定的计算机程序,以改变程序的运行进程或目的。代码注入攻击的结果可以是灾难性的。例如说:代码注入可作为许多计算机蠕虫繁殖的温床。 目录 1概说及例子 2代码注入的用途 2....