Symfony容器构建器的balance
方法做什么?
也就是说-dependency injection extension中有一些类似的代码。
addObjectResource
如果我跟踪该代码,我会see the following(用注释代替实际代码)
$container->addObjectResource(DoctrineORMDriver::class);
在这一点上,我可以更好地重述我的问题:什么是容器构建器资源,但是我不清楚正在做什么。
作为编写依赖项注入扩展的人,为什么我要添加特定的类作为对象资源?解锁Symfony框架中的哪些额外功能?
答案 0 :(得分:1)
资源是进入DI容器的配置/内部版本的任何文件。它与Config组件一起使用,以确定是否需要重新编译缓存的容器。对资源的任何更改都会触发容器缓存的重建。
通常在框架中,资源是您的配置文件,但是诸如DI扩展之类的可以修改容器的类也需要注册,因为更改其代码可能会改变容器的最终接线方式。
因此,您的单线声明DoctrineORMDriver
类就是这样的类,在评估容器缓存是否新鲜时需要进行检查。
the Symfony documentation对此进行了介绍。