如何解决委托工厂回调返回null
我想用另一个服务包装现有的服务,所以,我发现有一个委托工厂机制https://docs.mezzio.dev/mezzio/v3/features/container/delegator-factories/
该服务非常简单,我主要是在文档中复制粘贴了示例。
即使没有简化,服务看起来也像这样
class MoneyService {
public function __constructor(LoggerService $logger) {
$this->logger = $logger;
}
}
为了检查委托工厂是否正常工作,我是这样创建的。只是为了确保真正的服务构建正确。
class MoneyServiceDelegatorFactory
{
public function __invoke(ContainerInterface $container,string $name,callable $callback)
{
var_dump($name,$callback());
die;
}
}
最后我用配置连接它
'dependencies' => [
'delegators' => [
MoneyService::class => [
MoneyServiceDelegatorFactory::class,],
如果我尝试检查容器是否有 MoneyService 实例,那么它是真的 - $container->has(MoneyService::class) === true
。
因此,在委托工厂中,我希望 $callback()
的结果是 MoneyService 类的一个实例。但相反,我得到了空值。
解决方法
我已经弄清楚出了什么问题。我使用 PHP-DI,但在这种情况下,我添加了一个返回 MoneyService 实例的工厂。之后,在接下来的工厂中,它会因$callback()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。