首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >丛中的Symfony _defaults

丛中的Symfony _defaults
EN

Stack Overflow用户
提问于 2017-10-21 11:16:12
回答 1查看 78关注 0票数 1

我是Symfony的新手,对依赖注入有几个问题,特别是关于Symfony 3.3

  1. 新的_defaults块是为每个包分别声明的,还是在托管应用程序中是全局的和定义的?
  2. 我是否可以像在可重用的包中使用自动装配一样使用新事物,或者我必须分别声明包的所有服务?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-21 17:26:01

  1. 这是每个文件声明。您还可以在单个服务定义中重写它。应用程序/config/services.yml服务:_defaults: autowire: true App\SomeService: autowire: false
  2. 简单地说:是的。

我觉得您在问如何将所有这些特性结合在一起,的最佳实践是什么。说到这一点,我将用服务定义的多包示例扩展我的答案。

使用2 Bundles的应用程序将如下所示

代码语言:javascript
复制
imports:
    - { resource: "../../src/FirstBundle/config/services.yml" }
    - { resource: "../../src/SecondBundle/config/services.yml" }

services:
    _defaults:
        autowire: true

    App\SomeService:
        autowire: false

第一捆:

代码语言:javascript
复制
# src/FirstBundle/config/services.yml

services:
    _defaults:
        autowire: true

    App\FirstBundle\:
        resource: ../..

和第二包:

代码语言:javascript
复制
# src/SecondBundle/config/services.yml

services:
    _defaults:
        autowire: true

    App\SecondBundle\:
        resource: ../..

多加一个小费

另外,您可以将第一个文件改进为,只需通过单行导入就可以了,这要感谢全球模式

在实践中使用喜欢这样:

代码语言:javascript
复制
imports:
    - { resource: "../../src/**/config/services.yml" }

services:
    _defaults:
        autowire: true

    App\SomeService:
        autowire: false

您可以阅读更多关于Symfony 3.3依赖注入特性的这篇文章中有前/后配置示例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46862682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档