ondrejmirtes / better-reflection
Better Reflection - 一个改进的代码反射API
6.42.0.8
2024-09-10 09:57 UTC
Requires
- php: ^7.4 || ^8.0
- ext-json: *
- jetbrains/phpstorm-stubs: dev-master#217ed9356d07ef89109d3cd7d8c5df10aab4b0d4
- nikic/php-parser: ^5.1.0
Requires (Dev)
- doctrine/coding-standard: ^12.0.0
- phpstan/phpstan: ^1.10.60
- phpstan/phpstan-phpunit: ^1.3.16
- phpunit/phpunit: ^11.3.3
- rector/rector: 0.14.3
Suggests
- composer/composer: Required to use the ComposerSourceLocator
Conflicts
- thecodingmachine/safe: <1.1.3
- 350.x-dev
- 6.42.x-dev
- 6.42.0.8
- 6.42.0.7
- 6.42.0.6
- 6.42.0.5
- 6.42.0.4
- 6.42.0.3
- 6.42.0.2
- 6.42.0.1
- 6.41.0
- 6.40.0
- 6.39.0
- 6.38.0
- 6.37.0
- 6.36.0
- 6.35.0
- 6.34.0
- 6.33.0
- 6.32.0
- 6.31.0
- 6.30.0
- 6.29.0
- 6.28.0
- 6.27.0
- 6.26.0
- 6.25.x-dev
- 6.25.0.19
- 6.25.0.18
- 6.25.0.17
- 6.25.0.16
- 6.25.0.15
- 6.25.0.14
- 6.25.0.13
- 6.25.0.12
- 6.25.0.11
- 6.25.0.10
- 6.25.0.9
- 6.25.0.8
- 6.25.0.7
- 6.25.0.6
- 6.25.0.5
- 6.25.0.4
- 6.25.0.3
- 6.25.0.2
- 6.25.0.1
- 6.25.0
- 6.24.0
- 6.23.0
- 6.22.0
- 6.21.x-dev
- 6.21.0
- 6.20.0.1
- 6.20.0
- 6.19.0
- 6.18.0
- 6.17.x-dev
- 6.17.0
- 6.16.0
- 6.15.0
- 6.14.x-dev
- 6.14.0.8
- 6.14.0.7
- 6.14.0.6
- 6.14.0.5
- 6.14.0.4
- 6.14.0.3
- 6.14.0.2
- 6.14.0.1
- 6.14.0
- 6.13.0
- 6.12.x-dev
- 6.12.0.2
- 6.12.0.1
- 6.12.0
- 6.11.x-dev
- 6.11.0.1
- 6.11.0.0
- 6.10.0
- 6.9.0
- 6.8.x-dev
- 6.8.0.1
- 6.8.0
- 6.7.0
- 6.6.0
- 6.5.0
- 6.4.x-dev
- 6.4.1
- 6.4.0
- 6.3.0
- 6.2.0
- 6.1.0
- 6.0.x-dev
- 6.0.0
- 5.11.1
- 5.11.0
- 5.10.0
- 5.9.0
- 5.8.x-dev
- 5.8.0.1
- 5.8.0
- 5.7.0
- 5.6.0.2
- 5.6.0.1
- 5.6.0
- 5.5.0
- 5.4.0
- 5.3.1
- 5.3.0.16
- 5.3.0.15
- 5.3.0.14
- 5.3.0.13
- 5.3.0.12
- 5.3.0.11
- 5.3.0.10
- 5.3.0.9
- 5.3.0.8
- 5.3.0.7
- 5.3.0.6
- 5.3.0.5
- 5.3.0.4
- 5.3.0.3
- 5.3.0.2
- 5.3.0.1
- 5.3.0
- 5.2.0
- 5.1.x-dev
- 5.1.0
- 5.0.7.2
- 5.0.7.1
- 5.0.7
- 5.0.6.3
- 5.0.6.2
- 5.0.6
- 5.0.5
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.12.2
- 4.12.1
- 4.12.0
- 4.11.0
- 4.10.0
- 4.9.0
- 4.8.0
- 4.7.0
- 4.6.1
- 4.6.0
- 4.5.0
- 4.4.0
- 4.3.81
- 4.3.80
- 4.3.79
- 4.3.78
- 4.3.77
- 4.3.76
- 4.3.75
- 4.3.74
- 4.3.73
- 4.3.72
- 4.3.71
- 4.3.70
- 4.3.69
- 4.3.68
- 4.3.67
- 4.3.66
- 4.3.65
- 4.3.64
- 4.3.63
- 4.3.62
- 4.3.61
- 4.3.60
- 4.3.59
- 4.3.58
- 4.3.57
- 4.3.56
- 4.3.55
- 4.3.54
- 4.3.53
- 4.3.52
- 4.3.51
- 4.3.50
- 4.3.49
- 4.3.48
- 4.3.47
- 4.3.46
- 4.3.45
- 4.3.44
- 4.3.43
- 4.3.42
- 4.3.41
- 4.3.40
- 4.3.39
- 4.3.38
- 4.3.37
- 4.3.36
- 4.3.35
- 4.3.34
- 4.3.33
- 4.3.32
- 4.3.31
- 4.3.30
- 4.3.29
- 4.3.28
- 4.3.27
- 4.3.26
- 4.3.25
- 4.3.24
- 4.3.23
- 4.3.22
- 4.3.21
- 4.3.20
- 4.3.19
- 4.3.18
- 4.3.17
- 4.3.16
- 4.3.15
- 4.3.14
- 4.3.13
- 4.3.12
- 4.3.11
- 4.3.10
- 4.3.9
- 4.3.8
- 4.3.7
- 4.3.6
- 4.3.5
- 4.3.4
- 4.3.3
- 4.3.2
- 4.3.1
- 4.3.0
- 4.2.16
- 4.2.15
- 4.2.14
- 4.2.13
- 4.2.12
- 4.2.11
- 4.2.10
- 4.2.9
- 4.2.8
- 4.2.7
- 4.2.6
- 4.2.5
- 4.2.4
- 4.2.3
- 4.2.2
- 4.2.1
- 4.2.0
- 4.1.0
- 4.0.1-RC1
- 4.0.0
- 3.5.6
- 3.5.5
- 3.5.4
- 3.5.3
- 3.5.2
- 3.5.1
- 3.5.0
- 3.4.0
- 3.3.0
- 3.2.x-dev
- 3.2.0
- 3.1.1
- 3.1.0
- 3.0.x-dev
- 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-CurloptFtpSsl
- dev-fix-enum
- dev-patch-1
- dev-6.1.x-opti
- dev-circular-failing-test
- dev-fix-phar-autoload
- dev-fix-union-null
- dev-memory-leak
- dev-failing-test
- dev-fix-enum-properties
- dev-fix-traits
- dev-fix-trait-method
- dev-enum-failing
- dev-legacy
- dev-generic-identifier-type
- dev-class-const-unpack
- dev-fix-name
- dev-phpstan
- dev-reproduce-574
- dev-reproduce-573
- dev-fix-cs
- dev-dependabot/composer/phpunit/phpunit-8.4.3
- dev-dependabot/composer/nikic/php-parser-4.3.0
- dev-implement-newInstanceArgs
This package is auto-updated.
Last update: 2024-09-10 09:58:05 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许可证发布。
贡献
如果您想为该项目做出贡献,请阅读CONTRIBUTING说明。