fredemmott / definition-finder
v1.4.3
2017-01-27 04:46 UTC
Requires
- hhvm: ~3.12
Requires (Dev)
- 91carriage/phpunit-hhi: ~5.1
- hhvm/systemlib-extractor: ^0.1.0
- phpunit/phpunit: ~5.1
README
这个库可以找到HHVM理解的所有文件或树中的定义。它用于生成Hack参考文档,也可以用于其他目的,如生成自动加载映射
此项目需要HHVM 3.9或更高版本 - 然而,如果正在扫描的代码需要HHVM的更高版本,定义查找器可能无法在较低版本上解析它。
使用
有三个主要入口点
FileParser::FromFile(string $filename)
FileParser::FromData(string $data, ?string $filename = null)
TreeParser::FromPath(string $path)
FileParser
返回单个文件的定义,而TreeParser
递归遍历整个目录树。所有这三个函数都返回BaseParser
的实现。有三种访问形式
getClasses(): \ConstVector<ScannedBasicClass>
- 返回一个ConstVector
,其中包含ScannedBasicClass
,它具有与ReflectionClass
类似的接口getClassNames(): \ConstVector<string>
- 返回一个ConstVector
,其中包含类名getClass(string $name): ScannedBasicClass
- 返回指定类的ScannedBasicClass
,如果找不到则抛出异常
类似的函数也存在于接口、特质、常量、枚举和类型定义中。
安装
hhvm composer require fredemmott/definition-finder
状态
API是稳定的,并且已用于生产以生成Hack参考文档。
它已广泛应用于现代Hack和PHP代码,包括HHVM中的所有Hack类型检查器定义和扩展;它尚未在旧代码库中广泛使用 - 如果您找到它无法处理的PHP代码,请提交一个问题。
实现
这是一个基于token_get_all()
暴露的令牌流构建的递归解析器。
许可
本项目采用BSD许可;请参阅LICENSE文件。