Symfony ServiceContainer在编译后删除服务



我在ServiceContainer的Symfony文档上阅读,从容器中删除容器之前未使用的任何服务。

现在,如果没有缓存该容器,我会在请求上编译容器。

我将如何阻止未使用的服务被删除,尤其是在集装箱被编译后需要的情况下?

我知道Drupal通过基本上重写容器(主要是从原始Symfony容器中获取的代码)来做到这一点,但是尽管这是一个选择,但我想知道是否有更有效的方法来执行此操作?另外,我对Symfony相对较新,因此所有相关的文档链接都将不胜感激。

默认情况下,所有未使用的 private symfony服务都被删除,仅仅是因为它们是私人的,并且未定义为从外部调用。

如果private服务仅使用一次,则将被夹住(并从容器中删除)。

,即使您不使用public服务也不会从容器中删除,因此,如果您希望将服务保留在DI容器中,请确保它是公开的

最新更新