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 關注
- 114 瀏覽
添加回答
舉報