PHP7.1下 vld扩展的安装使用
PHP7.1下 vld扩展的安装使用
原创 2017年03月29日 08:03:05 595
1)git clone https://github.com/derickr/vld.git
2)cd vld
3)phpize
4)./configure
5)make && make install
6)添加ext-vld.ini配置文件
7)重启fpm
8)php -m | grep vld 查看扩展 |
9)php -dvld.active test.php 测试vld扩展
PHP7.1下 vld扩展的安装使用
原创 2017年03月29日 08:03:05 595
1)git clone https://github.com/derickr/vld.git
2)cd vld
3)phpize
4)./configure
5)make && make install
6)添加ext-vld.ini配置文件
7)重启fpm
8)php -m | grep vld 查看扩展 |
9)php -dvld.active test.php 测试vld扩展
关于VLD扩展显示信息的一点点解释
其中:
branch analysis from position 在分析数组时使用
return found是否返还
filename 分析的文件名
function name函数名
number of ops生成的操作数
compiled vars编译期间的变量,PHP5后添加,是一个缓存优化,在PHP源码中以IS_CV标记
op list生成的中间代码的变量列表
-dvld.active输出的是VLD的默认设置,使用-dvld.verbosity可以查看更加详细的内容
包含各个中间代码的操作数等
若只想看到输出的中间代码,并不想实际执行这段代码,可以使用-dvld.execute = 0来禁用代码的执行
php -dvld.active=1 -dvld.execute=0 test.php
它还可以支持输出.dot文件
php -dvld.active=1 -dvld.save_dir=’D:\tmp’ -dvld.save_paths=1 -dvld.dump_paths=1 t.php 会将生成的中间代码的信息输出再D:/tmp/path.dot中
-dvld.format是否以自定义的格式输出,默认为否,是指以-dvld.col_sep指定的参数间隔
-dvld.col_sep在-dvld.format参数启用时才会有效,默认为 \t
-dvld.verbosity是否显示更加详细的信息,默认为1,其值可以是0,1,2,3 或者小于0只是比1小的效果会喝0一样,负数的效果和3的效果一样
-dvld.save_dir指定文件的输出路径,默认/tmp
-dvld.save_path指定文件输出的路径,默认0表示不输出文件
-dvld.dump_paths控制输出的内容,0或1 默认1,即输出内容
2、linux下咋安装graphviz
http://www.cnblogs.com/sld666666/archive/2010/06/25/1765510.html
2.1)CentOS 下安装 graphviz
$ sudo yum install graphviz
Install 39 Package(s)
总下载量:13 M
Installed size: 35 M
确定吗?[y/N]:y
已安装:
graphviz.i686 0:2.26.0-10.el6
完毕!
3、在Linux下如何使用
假设我们把上面的代码写到了一个叫做aa.gv的文本文件里面,那么我们执行如下命令就可以了:
$ dot -Tpng -ohehe.png aa.gv
这样就会在当前目录下生成一个叫做hehe.png的图片文件
mac
wget http://pecl.php.net/get/vld-0.14.0.tgz
tar zxvf vld-0.14.0.tgz
cd vld-0.14.0
phpize
locate php-config
./configure –with-php-config=/usr/local/Cellar/php70/7.0.25_17/bin/php-config
make && make install
php -r ‘phpinfo();’ |grep vld
ls /usr/local/Cellar/php70/7.0.25_17/lib/php/extensions/no-debug-non-zts-20151012/vld.so
vi /usr/local/etc/php/7.0/php.ini
php -r ‘phpinfo();’ |grep vld
php -dvld.active=1 -dvld.execute=0 test.php
php -dvld.active=1 -dvld.save_paths=1 test.php
ls /tmp
brew install graphviz
dot -Tpng /tmp/paths.dot -o paths.png