1 回答
TA贡献1852条经验 获得超1个赞
你就是这么做的。
如果您要使用多个文件来配置服务,则无法两次定义相同的服务。
您的定义需要足够具体,这样它们才不会重叠。
如果您要使用广泛的resource设置,则需要添加所有相应的排除项,以便在不同文件中定义的服务在此之前不会被定义:
services:
App\:
resource: '../src/*'
exclude:
- '../src/Infrastructure/Symfony/DependencyInjection'
- '../src/Infrastructure/Symfony/Kernel.php'
- '../src/Tests'
- '../src/Messenger'
src/Messenger属于命名空间的上的服务App\Messenger可以在不同的文件上独立定义:
例如这样的事情:
# messenger_services.yaml
services:
_defaults:
autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
public: false
App\Messenger\CommandHandler\:
resource: '../../src/Messenger/CommandHandler/*'
tags:
- {name: 'messenger.message_handler', bus: command.bus}
App\Messenger\EventHandler\:
resource: '../../src/Application/EventHandler/*'
tags:
- {name: 'messenger.message_handler', bus: event.bus}
- 1 回答
- 0 关注
- 84 浏览
添加回答
举报