任何程序的开发过程中,都要经过大量的调试,如果你还在使用echo die die die的话,是很麻烦的,下面就教你如何使用xdebug让php能打断点。
本人开发php所使用的工具是phpstorm,phpstorm谁用谁知道。
step1:下载xdebug
你可以先到你php的扩展目录,找一找有没有php_xdebug.dll,如果有就可以不用下载了,直接看step2。如果没有,可以到 https://xdebug.org/download.php 下载符合你操作系统的xdebug。然后放到php扩展目录。博主这里的php扩展目录为 D:\phpStudy\php\php-7.0.12-nts\ext。
step2:配置php.ini
打开php.ini,找到 [XDebug] 部分,做如下修改,如果没有 [XDebug] ,可以自行添加。
zend_extension="D:\phpStudy\php\php-7.0.12-nts\ext\php_xdebug.dll"//请用你的php扩展目录
xdebug.remote_enable = On
xdebug.remote_handler = dbgp
xdebug.remote_host= localhost
xdebug.remote_port = 9000 //端口号默认9000,不建议做修改
xdebug.idekey = PHPSTORM
然后重启appache或者nginx或者IIS或者其他服务。
使用phpinfo();函数查看php信息,如果能找到
这样服务方面就配好了,接下来就是配phpstorm了。
step3:配置phpstorm
phpstorm->file->setting->Languages & Frameworks->PHP
phpstorm->file->setting->Languages & Frameworks->PHP->Debug
然后Debug->DBGp Proxy
然后PHP->servers
go on
上图中start url是点击调试按钮时,所打开的页面,这个无关紧要。起到关键作用的是XDEBUG_SESSION
一切都配置好了之后,就可以在行前面打断点了,断点打好后,点击调试按钮
这个调试按钮就能打开浏览器了,并且会有一个XDEBUG_SESSION_START的参数在GET参数上,而且F12查看cookie里面也多了一个XDEBUG_SESSION的cookie,没有这个cookie是不能触发到phpstorm的调试中断。所以如果直接在浏览器上输入地址是不能触发到调试中断的,必须先点击一下debug按钮有了cookie之后,在地址栏再手动输入时也能触发了。
好了,这是博主自己配置的方法,做一个笔记,以免日后需要用时又得到处找方法。如果你配置不成功的话,自己多多思考一下吧