在 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;
我正在尝试将 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;