在 CakePHP 4.0.4 中使用反射类

Using ReflectionClass in CakePHP 4.0.4

我正在尝试将 Playfab PHP SDK 集成到 CakePHP 4.0.4,

但 Cake 不喜欢以下行(包含在 SDK 示例中):

$apiReflection = new ReflectionClass("PlayFab" . $PlayFabApi . "Api");

它输出以下错误:

Class 'App\Controller\ReflectionClass' not found

据我所知,ReflectionClass 在 PHP 中是原生的 class,所以我知道 CakePHP 正在使用某种不允许的 PHP 子集ReflectionClass,可能是因为这个class允许逆向工程等等。

还有什么我想念的吗? 最重要的是,我怎样才能让 new ReflectionClass() 构造函数在不影响整个项目安全的情况下工作?

像往常一样:如果你想从 global 命名空间实例化一个 class,而你当前的代码在另一个命名空间中,你必须在 class 名称使用反斜杠。尝试使用:

$apiReflection = new \ReflectionClass

经过更多研究后,我发现解决方案非常简单,包括:

use ReflectionClass;
use ReflectionException;
use ReflectionMethod;