用Xdebug和webgrind实现调用关系可视化
使用Xdebug和webgrind可以将php程序运行过程中的函数调用关系以图片的形式展示出来。
这里只记录一下webgrind的安装和配置过程,至于Xdebug的安装配置,网络上已经有很多可供参考的文章了。
webgrind 依赖gprof2dot,而这又依赖python和Graphviz,因此这4个都需要安装。
1.前提:开启xdebug
2.安装graphviz
下载地址: http://www.graphviz.org/download/,
下载后直接解压到一个文件夹即可
3.安装python
安装的时候勾选设置环境变量
4.安装gprof2dot
5.安装webgrind
下载地址:https://github.com/jokkedk/webgrind ,将下载后的文件解压,并放进网站www目录下,配置成一个本地网站(因为之后查看调用关系是在浏览器上打开该网站进行)。
6.修改webgrind的配置文件config.php
设定以下变量:$storageDir
:用来存放生成的图片,需要可写权限;$pythonExecutable
:python.exe的路径,如果设置了环境变量则可直接填python;$dotExecutable
:dot.exe路径,dot.exe在graphviz文件夹下的release/bin
下;$webgrindPath
:webgrind的安装路径
修改webgrind目录下的index.php文件,将代码段1修改成代码段2,增加了变量$webgrindPath
_代码段1
1 | shell_exec(Webgrind_Config::$pythonExecutable.' library/gprof2dot.py -n '.$showFraction |
_代码段2
1 | shell_exec(Webgrind_Config::$pythonExecutable.' '.Webgrind_Config::$webgrindPath.'library/gprof2dot.py -n '.$showFraction |
7.查看
配置好之后,开启degub调试,在浏览器访问步骤5中配置的网站即可查看
参考:
1.配置问题
https://github.com/jokkedk/webgrind/issues/22
2.mac系统,使用Tideways和xhgui
https://gist.github.com/ramsey/5eaff1bb420506f7aef5eef533a413c9