我创建了一个包,我想用它做最佳实践。 p>
所以我的所有服务都是私人的 p>
https: //symfony.com/doc/current/service_container/alias_private.html p>
因此,除非您特别需要直接从 容器访问服务 通过$ container-> get(),最佳做法是将您的 服务设为私有。 实际上,默认的services.yaml配置 默认将所有服务配置为私有。 p> blockquote>
和 p>
< a href =“https://symfony.com/blog/new-in-symfony-3-4-services-are-private-by-default”rel =“nofollow noreferrer”> https://symfony.com/blog / new-in-symfony-3-4-services-private-private-by-default p>
在Symfony核心中,我们已经完成了 我们使所有服务和 别名为私有,除了一些选定的,在 bootstrap时需要。 实际上,bootstrapping是直接使用容器的最后也是唯一合法的用例。 p>
那么,我们是否应该弃用将完全注入 service_container与ContainerAware *一起注入的可能性? 这是社区在准备Symfony时可能考虑的一种可能性。 p> blockquote>
我有一个必须由App / Controller使用的Trait或Abstract控制器。 特征可以通过自动装配调用私有服务,问题是修复但是Symfony的最佳实践是不要仅使用Bundle中的自动装配: p>
https://symfony.com/doc/current/service_container/autowiring.html p> \ n
公共和可重用的捆绑包 p>
公共捆绑包应明确配置其服务,而不是依赖于自动装配。 p> blockquote>
那么如何在我的Trait或抽象控制器中注入我的私人服务。 或者甚至在没有用户配置的App控制器中都是services.yml。 p>
我希望我很清楚。 p>
对不起我的英语 。 我尝试改进它; - ) p> div>