ondrejmirtes/better-reflection

Better Reflection - 一个改进的代码反射API

6.42.0.8 2024-09-10 09:57 UTC

This package is auto-updated.

Last update: 2024-09-10 09:58:05 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许可证发布。

贡献

如果您想为该项目做出贡献,请阅读CONTRIBUTING说明