在Symfony应用程序中,如何自动标记特定目录中的所有类?
在services.yaml
中,我有:
services:
App\Service\TaggableServicesDirectory\:
resource: '../src/Service/TaggableServicesDirectory/*'
tags: ['app.my_tag']
然而,这些服务实际上并没有被标记,我可以通过运行bin/console debug:container --tag=app.my_tag
看到这一点,它返回了一个关于不存在标记的错误。
我也尝试过按父类标记:
services:
_instanceof:
App\Service\TaggableServicesDirectory\AbstractTaggableService:
tags: ['app.my_tag']
这和预期的一样工作,所以我知道路径和标记名是正确的。但是,按父类标记对我的用例来说并不理想。
- EDIT:第一个示例中的配置在新的Symfony项目上按预期工作,因此可能是我的主项目上的其他一些不正确的配置。**
1条答案
按热度按时间dxxyhpgq1#
遗憾的是,您不能像示例中那样指定目录,但是您可以通过为每个对象单独指定类名和标记来手动指定目录。
但是,要自动绑定标记,请使用symfony documentation中推荐的接口。
然后在类中实现这个接口。