捆绑包中的 Symfony _defaults
Symfony _defaults in bundles
我是 Symfony 的新手,对依赖注入有一些疑问,尤其是 Symfony 3.3
新的 _defaults
块是否可以为每个单独的捆绑包单独声明,或者它是全局的并在托管应用程序中定义?
我可以在我的可重用包中像自动装配一样使用 the new things 还是我必须单独声明所有包的服务?
这是每个文件声明。您还可以在单个服务定义中覆盖它。例如
# app/config/services.yml
services:
_defaults:
autowire: true
App\SomeService:
autowire: false
- 简而言之:是的。
我觉得你在问如何将所有这些功能组合在一起和什么是最佳实践。话虽如此,我将用服务定义的多捆绑示例扩展我的答案。
包含 2 个 Bundle 的应用程序看起来像这样
imports:
- { resource: "../../src/FirstBundle/config/services.yml" }
- { resource: "../../src/SecondBundle/config/services.yml" }
services:
_defaults:
autowire: true
App\SomeService:
autowire: false
第一个捆绑包:
# src/FirstBundle/config/services.yml
services:
_defaults:
autowire: true
App\FirstBundle\:
resource: ../..
第二个捆绑包:
# src/SecondBundle/config/services.yml
services:
_defaults:
autowire: true
App\SecondBundle\:
resource: ../..
一个额外小费
此外,由于 glob patterns,您可以将第一个文件改进为 只需单行导入。
我use it in practise喜欢这样:
imports:
- { resource: "../../src/**/config/services.yml" }
services:
_defaults:
autowire: true
App\SomeService:
autowire: false
中阅读有关 Symfony 3.3 依赖注入功能的更多信息
我是 Symfony 的新手,对依赖注入有一些疑问,尤其是 Symfony 3.3
新的
_defaults
块是否可以为每个单独的捆绑包单独声明,或者它是全局的并在托管应用程序中定义?我可以在我的可重用包中像自动装配一样使用 the new things 还是我必须单独声明所有包的服务?
这是每个文件声明。您还可以在单个服务定义中覆盖它。例如
# app/config/services.yml services: _defaults: autowire: true App\SomeService: autowire: false
- 简而言之:是的。
我觉得你在问如何将所有这些功能组合在一起和什么是最佳实践。话虽如此,我将用服务定义的多捆绑示例扩展我的答案。
包含 2 个 Bundle 的应用程序看起来像这样
imports:
- { resource: "../../src/FirstBundle/config/services.yml" }
- { resource: "../../src/SecondBundle/config/services.yml" }
services:
_defaults:
autowire: true
App\SomeService:
autowire: false
第一个捆绑包:
# src/FirstBundle/config/services.yml
services:
_defaults:
autowire: true
App\FirstBundle\:
resource: ../..
第二个捆绑包:
# src/SecondBundle/config/services.yml
services:
_defaults:
autowire: true
App\SecondBundle\:
resource: ../..
一个额外小费
此外,由于 glob patterns,您可以将第一个文件改进为 只需单行导入。
我use it in practise喜欢这样:
imports:
- { resource: "../../src/**/config/services.yml" }
services:
_defaults:
autowire: true
App\SomeService:
autowire: false
中阅读有关 Symfony 3.3 依赖注入功能的更多信息