phpdocumentor / reflection
用于对PHP项目进行静态分析的Reflection库
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
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
,其中包含所有文件(及其类、特质和接口)的完整层次结构(以及其中的一切),以及所有命名空间和包作为层次树。
请参阅示例脚本以获取详细和注释示例。