silverfoxy / php-cfg
PHP的元数据统计信息控制流图(CFG)实现的分支
v0.5.0
2019-02-23 22:06 UTC
Requires
- php: ^7.0
- nikic/php-parser: ^4.0
- phpdocumentor/graphviz: ^1.0.4
Requires (Dev)
- fabpot/php-cs-fixer: 1.*
- phpunit/phpunit: ^4.7
This package is auto-updated.
Last update: 2024-09-08 23:02:50 UTC
README
PHP-CFG
静态单赋值(SSA)形式的控制流图(CFG)的纯PHP实现。
所使用的SSA构造算法基于Braun等人发表的《简单高效的静态单赋值形式构造》一文。此算法直接从抽象语法树构建SSA形式,而不经过非SSA的中间表示。如果你在寻找支配边界,这里找不到...
构建的SSA形式是最小化和纯净的(或应该是)。
用法
要启动解析器,你需要给它一个 PhpParser
实例
$parser = new PHPCfg\Parser( (new PhpParser\ParserFactory)->create(PhpParser\ParserFactory::PREFER_PHP7) );
然后,只需调用代码块上的 parse,并给它一个文件名
$script = $parser->parse(file_get_contents(__FILE__), __FILE__);
要转储图,只需使用内置的转储器
$dumper = new PHPCfg\Printer\Text(); echo $dumper->printScript($script);