phpdocumentor/reflection

用于对PHP项目进行静态分析的Reflection库


README

License: MIT Qa workflow Coveralls Coverage Scrutinizer Code Coverage Scrutinizer Code Quality Stable Version Unstable Version

Reflection

使用此库可以静态地反射一个或多个文件,并创建表示您的应用程序结构的对象图,包括使用DocBlocks提供的源代码文档。

此库提供的信息类似于PHP(内置)Reflection扩展提供的信息;然而,使用此库有一些优势

  • 由于其静态特性,它不会在反射文件中执行过程化代码,而动态反射会。
  • 由于代码没有由PHP(和执行),静态反射使用更少的内存。
  • 可以反射完整的文件
  • 可以通过反射多个文件来反射整个项目。
  • 反映DocBlock的内容,而不仅仅是提到它的存在。
  • 能够分析适用于任何PHP版本(从5.2开始)的代码,包括您的已安装版本。

功能

  • [创建对象图],类似于网站地图显示网站结构,显示了您的应用程序的结构。
  • 可以读取和解释从5.2版本开始的任何PHP版本的代码,包括您当前安装的版本。
  • 由于其干净的界面,它可以应用于任何应用程序,无需复杂的设置。

安装

要检查代码库,您需要告诉Composer包括phpdocumentor/reflection包。这可以通过在命令行终端中使用以下命令轻松完成

composer require phpdocumentor/reflection:~5.0

安装完成后,无需进一步配置,您就可以立即开始使用它。

基本用法

此Reflection库使用PSR-4,建议使用PSR-4兼容的自动加载器来加载包含此库类所有文件的文件。

一种简单的方法是包括composer自动加载器,如下所示

include 'vendor/autoload.php';

完成此操作后,您可以使用\phpDocumentor\Reflection\Php\ProjectFactory类的createInstance()方法创建一个新的项目工厂,并使用合理的默认值预先配置它。可选地,您可以通过createInstance()的参数指定要使用的解析器版本。默认情况下,优先选择php7解析器。php5用作后备。有关更多信息,请参阅phpparser的文档

$projectFactory = \phpDocumentor\Reflection\Php\ProjectFactory::createInstance();

到此为止,我们已经准备好分析您的完整项目或一次一个文件。只需将文件路径数组传递给项目工厂的create方法。

$projectFiles = [new \phpDocumentor\Reflection\File\LocalFile('tests/example.file.php')];
$project = $projectFactory->create('My Project', $projectFiles);

当进程准备就绪时,将返回一个新类型的对象phpDocumentor\Reflection\Php\Project,其中包含所有文件(及其类、特质和接口)的完整层次结构(以及其中的一切),以及所有命名空间和包作为层次树。

请参阅示例脚本以获取详细和注释示例。