phpdocumentor / reflection
PHP项目静态分析的反射库
6.0.0
2024-05-23 19:28 UTC
Requires
- php: 8.1.*|8.2.*|8.3.*
- nikic/php-parser: ~4.18 || ^5.0
- phpdocumentor/reflection-common: ^2.1
- phpdocumentor/reflection-docblock: ^5
- phpdocumentor/type-resolver: ^1.2
- symfony/polyfill-php80: ^1.28
- webmozart/assert: ^1.7
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^1.0
- doctrine/coding-standard: ^12.0
- mikey179/vfsstream: ~1.2
- mockery/mockery: ~1.6.0
- phpspec/prophecy-phpunit: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.8
- phpstan/phpstan-webmozart-assert: ^1.2
- phpunit/phpunit: ^10.0
- psalm/phar: ^5.24
- rector/rector: ^1.0.0
- squizlabs/php_codesniffer: ^3.8
- 6.x-dev
- 6.0.0
- 5.x-dev
- 5.3.3
- 5.3.2
- 5.3.1
- 5.3.0
- 5.2.0
- 5.1.1
- 5.1.0
- 5.0.1
- 5.0.0
- 4.x-dev
- 4.0.1
- 4.0.0
- 4.0.0-beta4
- 4.0.0-beta3
- 4.0.0-beta2
- 4.0.0-beta
- 4.0.0-alpha6
- 4.0.0-alpha5
- 4.0.0-alpha4
- 4.0.0-alpha3
- 4.0.0-alpha2
- 4.0.0-alpha1
- 3.0.x-dev
- 3.0.1
- 3.0.0
- 2.0.0-alpha2
- 2.0.0-alpha1
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.1.9
- 0.1.8
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-dependabot/composer/phpstan/phpstan-1.12.4
- dev-dependabot/composer/squizlabs/php_codesniffer-3.10.3
- dev-composer/bump-php-parser
- dev-feature/expressions-in-arguments
- dev-feature/php8-attributes
- dev-feature/220_readonly_properties
This package is auto-updated.
Last update: 2024-09-19 08:38:28 UTC
README
反射
使用此库可以静态地反射一个或多个文件,创建一个表示应用程序结构的对象图,包括使用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
类型的对象,其中包含所有文件的完整层次结构,包括它们的类、特性和接口(及其所有内容),以及所有命名空间和包作为层次树。
请参阅示例脚本以获取详细和注释示例