phpdocumentor/reflection

PHP项目静态分析的反射库


README

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

反射

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

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

  • 由于其静态性质,它不会在反射文件中执行过程代码,而动态反射会这样做。
  • 因为没有代码被PHP(和执行)解析,静态反射使用更少的内存。
  • 可以反射完整的文件
  • 可以通过反射多个文件来反映整个项目
  • 反映DocBlock的内容,而不仅仅是提到有一个。
  • 可以分析编写为任何PHP版本(从5.2开始)的代码,直到包括您安装的PHP版本。

功能

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

安装

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

composer require phpdocumentor/reflection:~5.0

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

基本用法

此反射库使用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类型的对象,其中包含所有文件的完整层次结构,包括它们的类、特性和接口(及其所有内容),以及所有命名空间和包作为层次树。

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