Symfony容器构建器的addObjectResource方法

时间:2019-05-08 22:16:36

标签: php symfony dependency-injection

Symfony容器构建器的balance方法做什么?

也就是说-dependency injection extension中有一些类似的代码。

addObjectResource

如果我跟踪该代码,我会see the following(用注释代替实际代码)

$container->addObjectResource(DoctrineORMDriver::class);

在这一点上,我可以更好地重述我的问题:什么是容器构建器资源,但是我不清楚正在做什么。

作为编写依赖项注入扩展的人,为什么我要添加特定的类作为对象资源?解锁Symfony框架中的哪些额外功能?

1 个答案:

答案 0 :(得分:1)

资源是进入DI容器的配置/内部版本的任何文件。它与Config组件一起使用,以确定是否需要重新编译缓存的容器。对资源的任何更改都会触发容器缓存的重建。

通常在框架中,资源是您的配置文件,但是诸如DI扩展之类的可以修改容器的类也需要注册,因为更改其代码可能会改变容器的最终接线方式。

因此,您的单线声明DoctrineORMDriver类就是这样的类,在评估容器缓存是否新鲜时需要进行检查。

the Symfony documentation对此进行了介绍。