如何将 PHP class 作为参数传递给构建器函数?
How to pass PHP class as parameter to a builder function?
我实现了一个对象生成器,它采用 class 名称并尝试创建一个新的实例对象。如果需要,构建器会尝试注入服务。 class 名称在当前实现中作为字符串传递。这是一个例子
$className = '\Example\Application\ServiceClass';
$service = CiContext::newInstance($className);
但是,这与我的 IDE (eclipse) 不兼容,重构过程没有找到 class 名称(字符串形式)。
有没有办法像 java 那样获得 class 名称?
Class classInstance = ServerClass.class;
在这种情况下,重构过程会找到 class 引用并更改 class 名称。
好吧,class 名称支持 PHP7 class 常量。比如下面的代码在PHP7.4中是正确的:
$service = CiContext::newInstance(\Example\Application\ServiceClass::class);
这将解决我的问题,IDE 找到 class 用法。
另一方面,class 文字也将支持对象。有关详细信息,请参阅 class literal on object
我实现了一个对象生成器,它采用 class 名称并尝试创建一个新的实例对象。如果需要,构建器会尝试注入服务。 class 名称在当前实现中作为字符串传递。这是一个例子
$className = '\Example\Application\ServiceClass';
$service = CiContext::newInstance($className);
但是,这与我的 IDE (eclipse) 不兼容,重构过程没有找到 class 名称(字符串形式)。
有没有办法像 java 那样获得 class 名称?
Class classInstance = ServerClass.class;
在这种情况下,重构过程会找到 class 引用并更改 class 名称。
好吧,class 名称支持 PHP7 class 常量。比如下面的代码在PHP7.4中是正确的:
$service = CiContext::newInstance(\Example\Application\ServiceClass::class);
这将解决我的问题,IDE 找到 class 用法。
另一方面,class 文字也将支持对象。有关详细信息,请参阅 class literal on object