roave / better-reflection
Better Reflection - 改进的代码反射API
6.42.0
2024-09-12 14:43 UTC
Requires
- php: ~8.2.0 || ~8.3.2
- ext-json: *
- jetbrains/phpstorm-stubs: 2024.2
- nikic/php-parser: ^5.1.0
Requires (Dev)
- phpbench/phpbench: ^1.3.1
- phpunit/phpunit: ^11.3.4
Suggests
- composer/composer: Required to use the ComposerSourceLocator
Conflicts
- thecodingmachine/safe: <1.1.3
- 6.43.x-dev
- 6.42.x-dev
- 6.42.0
- 6.41.x-dev
- 6.41.0
- 6.40.x-dev
- 6.40.0
- 6.39.x-dev
- 6.39.0
- 6.38.x-dev
- 6.38.0
- 6.37.x-dev
- 6.37.0
- 6.36.x-dev
- 6.36.0
- 6.35.x-dev
- 6.35.0
- 6.34.x-dev
- 6.34.0
- 6.33.x-dev
- 6.33.0
- 6.32.x-dev
- 6.32.0
- 6.31.x-dev
- 6.31.0
- 6.30.x-dev
- 6.30.0
- 6.29.x-dev
- 6.29.0
- 6.28.x-dev
- 6.28.0
- 6.27.x-dev
- 6.27.0
- 6.26.x-dev
- 6.26.0
- 6.25.x-dev
- 6.25.0
- 6.24.x-dev
- 6.24.0
- 6.23.x-dev
- 6.23.0
- 6.22.x-dev
- 6.22.0
- 6.21.x-dev
- 6.21.0
- 6.20.x-dev
- 6.20.0
- 6.19.x-dev
- 6.19.0
- 6.18.x-dev
- 6.18.0
- 6.17.x-dev
- 6.17.0
- 6.16.x-dev
- 6.16.0
- 6.15.x-dev
- 6.15.0
- 6.14.x-dev
- 6.14.0
- 6.13.x-dev
- 6.13.0
- 6.12.x-dev
- 6.12.0
- 6.11.x-dev
- 6.11.0
- 6.10.x-dev
- 6.10.0
- 6.9.x-dev
- 6.9.0
- 6.8.x-dev
- 6.8.0
- 6.7.x-dev
- 6.7.0
- 6.6.x-dev
- 6.6.0
- 6.5.x-dev
- 6.5.0
- 6.4.x-dev
- 6.4.1
- 6.4.0
- 6.3.x-dev
- 6.3.0
- 6.2.x-dev
- 6.2.0
- 6.1.x-dev
- 6.1.0
- 6.0.x-dev
- 6.0.0
- 5.12.x-dev
- 5.11.x-dev
- 5.11.1
- 5.11.0
- 5.10.x-dev
- 5.10.0
- 5.9.x-dev
- 5.9.0
- 5.8.x-dev
- 5.8.0
- 5.7.x-dev
- 5.7.0
- 5.6.x-dev
- 5.6.0
- 5.5.x-dev
- 5.5.0
- 5.4.x-dev
- 5.4.0
- 5.3.x-dev
- 5.3.1
- 5.3.0
- 5.2.x-dev
- 5.2.0
- 5.1.x-dev
- 5.1.0
- 5.0.x-dev
- 5.0.7
- 5.0.6
- 5.0.5
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.12.x-dev
- 4.12.2
- 4.12.1
- 4.12.0
- 4.11.x-dev
- 4.11.0
- 4.10.x-dev
- 4.10.0
- 4.9.x-dev
- 4.9.0
- 4.8.x-dev
- 4.8.0
- 4.7.0
- 4.6.1
- 4.6.0
- 4.5.0
- 4.4.0
- 4.3.0
- 4.2.0
- 4.1.0
- 4.0.0
- 3.5.0
- 3.4.0
- 3.3.0
- 3.2.0
- 3.1.1
- 3.1.0
- 3.0.0
- 2.0.2
- 2.0.1
- 2.0.0
- 1.2.0
- 1.1.0
- 1.0.1
- 1.0.0
- 0.1.0
- dev-renovate/lock-file-maintenance
This package is auto-updated.
Last update: 2024-09-22 04:08:08 UTC
README
Better Reflection是一个反射API,旨在改进PHP内置的反射API并提供更多功能。
为什么它更好?
- 可以在不加载它们的情况下反射尚未加载的类
- 可以直接从PHP代码字符串中反射类
- 可以直接在闭包上反射
- 能够从方法和函数中提取AST
- 能够返回类或函数的AST表示
- 可以从PHP 7代码中获取返回类型声明和参数类型声明
- 更多功能即将推出!
通常,您会使用Better Reflection进行静态分析工具。它可以作为访问类型信息(例如,文档块、类型声明)的基准,用于静态分析,如方法/函数体AST获取等。
Better Reflection不适用于运行时使用,因为性能比PHP内置反射差得多。如果您不想执行原生PHP反射无法执行的操作,那么就使用原生PHP反射吧!Better Reflection中的“Better”指的是功能,而不是速度!
请务必阅读更多关于功能文档。
安装
需要使用composer
composer require roave/better-reflection
使用
<?php use Roave\BetterReflection\BetterReflection; $classInfo = (new BetterReflection()) ->reflector() ->reflectClass(\Foo\Bar\MyClass::class);
文档
升级
请参阅升级文档以了解升级已安装的BetterReflection
版本所需的内容。
限制
- PHP无法自动加载函数,因此我们无法静态反射函数
许可证
本软件包根据MIT许可证发布。
贡献
如果您想为项目做出贡献,请阅读贡献指南。