fredemmott/definition-finder

此包已被弃用且不再维护。作者建议使用facebook/definition-finder包。

在PHP或Hack文件中查找定义。对自动加载器很有用。

v1.4.3 2017-01-27 04:46 UTC

README

这个库可以找到HHVM理解的所有文件或树中的定义。它用于生成Hack参考文档,也可以用于其他目的,如生成自动加载映射

此项目需要HHVM 3.9或更高版本 - 然而,如果正在扫描的代码需要HHVM的更高版本,定义查找器可能无法在较低版本上解析它。

使用

有三个主要入口点

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文件。