我是windows版本,首先需下载xdebug:放到指定ext
位置后运行phpinfo()函数
看一下是否安装成功。
附上xdebug下载版本请自己对应
-
增加
php.ini
中的选项如下,注意php.ini
中端口和下图中的端口号需要保持一致[xdebug] zend_extension="D:\phpStudy\php56n\ext\php_xdebug-2.2.6-5.6-vc11-nts.dll" xdebug.remote_enable = On xdebug.remote_handler = dbgp xdebug.remote_host= localhost xdebug.remote_port = 9000 xdebug.idekey = PHPSTORM
ubuntu更简单
apt-get install php-xdebug
-
phpstorm
中setting
-搜索xdebug
,按照下图设置端口等。
3.参考以下gif图,注意我是在本地host设置了域名。如果没有点击小虫子(未让phpstorm监听9000调试端口),我们打印一个变量会像往常输出在浏览器。而安装了xdebug扩展后(居然打印出来有颜色!)如下两张图:
没装xdebug扩展的
装了xdebug扩展的
如何添加配置图可参考下图:
4.那如果不想通过浏览器输出,要捕获程序所有变量,就需要设置断点.点击小虫子之后运行,先会跳到浏览器,被phpstorm捕获到后会自动跳到编辑器,然后在编辑器的控制台中就会有变量内容,点击x号就可以关闭!不用了就小虫子右边电话挂掉
=============================================================
以上是phpstorm8,现在用的最新版。最新版的我自己安装了下,需要chrome的一个扩展,这样phpstorm才能监听到来自浏览器的数据
下面简单记录下调试的选项
先贴个图
show execution point :显示当前断点的位置
step over :直接从上一个断点到下一个断点,不进入子函数。比如从图的的54-55
step into:进入当前断点子函数,就是打破砂锅为到底。臭不要脸的意思。(当然如果你就echo 1 ,step into 和over 没啥区别~)
force step into:强制进入,一般用不到强制吧,
step out 跳出的意思是,你step into了几层,你觉得没必要再深究了,想看下一个断点,这样你就可以一步步在out回来,然后继续你的下一个断点查看。
最后一个 run to cursor 当然很重要,因为一般框架都是index.php单一入口。所以我们可以从浏览器连接到我们的controller,然后到debug中设置当前断点即可。
官方参考