roave/better-reflection

Better Reflection - 改进的代码反射API

6.42.0 2024-09-12 14:43 UTC

README

Mutation testing badge Type Coverage Latest Stable Version License

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许可证发布。

贡献

如果您想为项目做出贡献,请阅读贡献指南