phpstorm结合xdebug 进行php断点调试

要进行断点调试,我们要先安装xdebug这个调试插件,可以在phpinfo里面搜xdebug看是否已安装。

安装xdebug

插件官网是
https://xdebug.org
进入后,点击download页面

下载自己环境中php版本的插件
进入下载列表中就可以发现,不同php版本对应不同的插件,只有选择对了php版本起作用,自己选版本太麻烦,所以可以用下面的方式
在download页面中的顶部可看到

Releases
The Windows binaries generally work for every mini release for the mentioned PHP version, although the extension is built against the most current PHP version at that time. The VCx marker tells with which compiler the extension was built, and Non-thread-safe whether ZTS was disabled. Those qualifiers need to match the PHP version you're using. If you don't know which one you need, please refer to the custom installation instructions.
点击上面标色的文字链接,看到下面的界面
phpstorm结合xdebug 进行php断点调试
打开我们的phpinfo页面,查看原代码,按Ctrl+A,然后Ctrl+C复制,并将内容粘贴到右侧框中

点击Analyse my phpinfo() output按钮

可以看到如下的分析页面
在下面图片的底部有下载链接,下载后复制到什么目录php.ini中添加的信息,并重启这四条重要信息
phpstorm结合xdebug 进行php断点调试



本人phpstudy中的php.ini配置的是
[XDebug]
xdebug.profiler_output_dir="D:\phpStudy2018\PHPTutorial\tmp\xdebug"
xdebug.trace_output_dir="D:\phpStudy2018\PHPTutorial\tmp\xdebug"
zend_extension = D:\phpStudy2018\PHPTutorial\php\php-7.1.13-nts\ext\php_xdebug-2.7.2-7.1-vc14-nts.dll
xdebug.remote_enable = 1
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_port = 9001
xdebug.idekey="PHPSTORM"

等重启完,我们重新运行phpinfo语句,再在里面搜索到xdebug便是安装成功

phpstorm中添加调试信息


打开phpstorm后,点击蓝框中的下拉

phpstorm结合xdebug 进行php断点调试

点击编辑结构,如果你是英文版本,请看那个小笔的图标来确认
phpstorm结合xdebug 进行php断点调试

点击红框中的+号按钮
phpstorm结合xdebug 进行php断点调试

在出现的新窗体里面选择PHP Web Application

phpstorm结合xdebug 进行php断点调试

在新窗口中,点击红框中的....按钮
phpstorm结合xdebug 进行php断点调试

在新窗口中,点击+号,在host中输入,如我的127.0.0.1
phpstorm结合xdebug 进行php断点调试

完成后,便返回上一步,如下面的界面
phpstorm结合xdebug 进行php断点调试

当我们调试时,只要将调试的链接,添加在Start URL中,然后确定即可
如我添加的是 /public/index.php/admin/index/ts/

进行调试

调试时,只要在程序中下好断点,点击下图中的小虫子即可进行调试
phpstorm结合xdebug 进行php断点调试

出现waiting for incoming connetcion with ide key的错误

可以看到我php.inixdebug.remote_port 设定的是9001
phpstrom中,我们也要进行端口等设置,我们打开phpstrom设置
找到左侧的信息,我们将端口设为9001,因9000被别的占有,所以请设成9000端口以外的
phpstorm结合xdebug 进行php断点调试
将上方Debug的+号点开
点中DBGp Proxy,出现右侧的界面
  • IDE key填上我们前面php.inixdebug.idekey设置的PHPSTORM
  • Host设成xdebug.remote_host中的127.0.0.1
  • Port设成前面的9001
phpstorm结合xdebug 进行php断点调试

再次重启后,我上面的错误消失 ,因为那个错误让我折腾了很长时间。

postman搭建xdebug并测试成功,下面介绍使用google chrome请求

 phpstorm helper 插件

下载链接(https://www.crx4chrome.com/crx/768/)

phpstorm结合xdebug 进行php断点调试
 
下载xdebug
下载链接(https://www.crx4chrome.com/crx/1716/)
phpstorm结合xdebug 进行php断点调试
 
安装插件,将插件拖入
phpstorm结合xdebug 进行php断点调试
 
然后google chrome 会出现这两个图标
phpstorm结合xdebug 进行php断点调试
 
右击debug图标,设置ID key
其实是在图标上点击右键-设置
phpstorm结合xdebug 进行php断点调试

 
测试:在浏览器发送请求
phpstorm结合xdebug 进行php断点调试


发送请求之后,phpstorm 同样会做出响应
phpstorm结合xdebug 进行php断点调试
 

结尾来说说怎么测试:


phpstorm结合xdebug 进行php断点调试
第一个按钮:step over 步越
执行当前函数的下一步,如果有子函数,也不会进入,会一直执行到函数结束
第二个按钮:step into 步入
执行当前函数的下一步,如果有子函数,会从头到尾执行子函数,还原了程序执行的最详细的路线,从构造函数到结尾的每一步都会跳到。
第三个按钮:force step into
与step into 相同,执行当前函数的下一步,如果有子函数也会进入子函数,只不过不会从头到尾的还原函数执行的路线,会直接跳到子函数内第一步,构造函数等一些前置方法会忽略
第四个按钮:step out 步出
跳出当前执行的函数,跳到父函数的下一步。
第五个按钮:run to cursor 
执行到下一个断点处

一个错误问题

php7.1.3不行

我上面调试时用的是php7.1.3,在各方面都发觉没问题,但唯有一样,那便是点击上方写的调试按钮时,便获得不到数据。

改为php-7.0.12

于是将版本降成php7.0.12,引入的是phpstudyphp-7.0.12-nts-ext里面自带的php_xdebug.dll文件,发现完全没问题了,所以如果你是用php7.0.12,又发现和我一样获得不了数据,那么可以下载一个phpstudy,从里面将文件提取出来,因为php7.0.12的info信息放xdebug中,找不到下载文件。
 

调试例子

    public function getBanner($id)
    {
        $data = [
            'name' => 'vendor',
            'email' => 'vendor@qq.com',
        ];

        $validate = new Validate([
            'name' => 'require|max:10',
            'email' => 'email'
        ]);

        $result = $validate->check($data);
    }
上面的例子中,我们在最后下个断点,就是那个红点,可以看到未运行调试前,只是个红点,里面还未有对号
phpstorm结合xdebug 进行php断点调试

运行断点调试
下方红框中的要打开,然后点蓝框中的小虫子即可
phpstorm结合xdebug 进行php断点调试

我们调试的地址是
  • http://127.0.0.1/banner/1
运行后,我们设置的浏览器会自动打开链接,并加上如下的后缀
  • http://127.0.0.1/banner/1?XDEBUG_SESSION_START=11150

phpstorm结合xdebug 进行php断点调试

这时候进入下一个断点,看看一下调试控制器的信息

phpstorm结合xdebug 进行php断点调试

我们F8进入下一个断点

phpstorm结合xdebug 进行php断点调试

评论

大侠名号:   验证暗号: 点击我更换图片

修远兮

在这里记录每一点自己需要的知识

添加创始人微信,一起交流心得

推荐文章RECOMMEND