我正在使用 PHP-DI 5 依赖注入容器,并且我已经阅读了有关定义缓存的文档。虽然我还不确定这方面......所以我想问你:
1)如果我直接将一个对象设置为容器中的条目值,该条目会被缓存吗?
$builder = new ContainerBuilder();
$builder->setDefinitionCache(new ApcCache());
$container = $builder->build();
$response = new Response();
// Will this entry be cached?
$container->set(ResponseInterface::class, $response);
2) 现在假设对象已经在容器中的定义文件中定义:
return [
'response' => function () {
return new Response();
},
];
如果我执行以下操作:
$builder = new ContainerBuilder();
$builder->setDefinitionCache(new ApcCache());
$container = $builder->build();
// Will this entry be cached?
$container->set(ResponseInterface::class, DI\get('response'));
- 条目是否会被缓存,或者
- 是否会引发错误,或者
- 条目会“静默”不被缓存吗?
非常感谢你。