使用 PHPStorm 与 Xdebug 调试 Laravel

写PHP的API时,一直用postman做测试,最近发现在测试过程中可以用xdebug来断点调试,比原来手动打exit或者die来断点效率高多了。

下面记录下我自己从安装到测试的全部详细过程。我的运行环境是:windows+wamp。

环境

  • 系统版本:Windows 10
  • PHP 版本:7.0.12
  • Xdebug 版本:2.7
  • Laravel 版本:5.3
  • PHPStorm 版本:2018.1

1、下载Xdebug,地址:

https://xdebug.org/download.php

注意:php版本和xdebug版本一定要相对应,如下图所示:

使用 PHPStorm 与 Xdebug 调试 Laravel_第1张图片

使用 PHPStorm 与 Xdebug 调试 Laravel_第2张图片

2、PHP安装xdebug扩展

将下载好的DLL文件复制到对应的目录下,如:D:\phpStudy\PHPTutorial\php\php-7.0.12-nts\ext

php.ini的配置,下面的配置仅供参考,路径要换成自己的!!!

[xdebug]
zend_extension="D:\phpStudy\PHPTutorial\php\php-7.0.12-nts\ext\php_xdebug-2.7.0alpha1-7.0-vc14-nts.dll"
xdebug.remote_enable = On
xdebug.remote_handler = dbgp   
xdebug.remote_host= localhost
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM

 

查看phpinfo~,出现如下信息表示安装成功

使用 PHPStorm 与 Xdebug 调试 Laravel_第3张图片

 

3、PHPSTORM设置

(1)首先检查phpstorm的xdebug配置

使用 PHPStorm 与 Xdebug 调试 Laravel_第4张图片

 

  • 进入File>Settings>Language & Frameworks > PHP>Debug,看到XDebug选项卡,port填9000,其他默认

使用 PHPStorm 与 Xdebug 调试 Laravel_第5张图片

 

           这里的debug port要和php.ini里面的xdebug.remote_port相一致!默认是9000,如果9000端口被占用的话,可以改成其他端口。

  • 进入File>Settings>Language & Frameworks > PHP>Debug>DBGp Proxy,IDE key 填 PHPSTORM,Host 填localhost,Port 填80

使用 PHPStorm 与 Xdebug 调试 Laravel_第6张图片

点击OK保存。

 (2) 设置debug

  • 点击左上角Edit Configurations

使用 PHPStorm 与 Xdebug 调试 Laravel_第7张图片

  • 点击+号>PHP Web Page

使用 PHPStorm 与 Xdebug 调试 Laravel_第8张图片

  • 配置如下,具体根据自己的URL去配置,这里只是参考

使用 PHPStorm 与 Xdebug 调试 Laravel_第9张图片

(3) 设置断点,根据自己的需要设置相应的断点。

(4)点击左上角甲虫图标或者 shift + F9,会在在浏览器打开如下地址

http://sfabric.sm/api/sales-order?XDEBUG_SESSION_START=16995

把?XDEBUG_SESSION_START=16995添加到postman的URL中,点击Send,如下图所示

使用 PHPStorm 与 Xdebug 调试 Laravel_第10张图片

 

在PHPstorm中出现如下图的调试窗口

使用 PHPStorm 与 Xdebug 调试 Laravel_第11张图片

控制台的功能介绍如下:

  • 左侧绿色三角形 : Resume Program,表示將继续执行,直到下一个中断点停止。
  • 左侧红色方形 : Stop,表示中断当前程序调试。
  • 上方第一个图形示 : Step Over,跳过当前函数。
  • 上方第二个图形示 : Step Into,进入当前函数內部的程序(相当于观察程序一步一步执行)。
  • 上方第三个图形示 : Force Step Into,強制进入当前函数內部的程序。
  • 上方第四个图形示 : Step Out,跳出当前函数內部的程式。
  • 上方第五个图形示 : Run to Cursor,定位到当前光标。
  • Variables :可以观察到所有全局变量、当前局部变量的数值
  • Watches : 可以新增变量,观察变量随着程序执行的变化

                                                                                             (全文完)

 

你可能感兴趣的:(php,laravel,工具)