在Symfony 4中使用autowire时,我使用了这个工作代码:
App\:
resource: '../src/*'
exclude: '../src/{Domain,Entity,Migrations,Tests}'
该代码从自动装配中排除了所有这些文件夹:
- src/Domain
- src/Entity
- src/Migrations
- src/Tests
没关系,但是当我想要排除多个分散在另一个文件夹中的同名文件夹时,就会出现问题。
例如,如果我们有这种结构:
¿有没有办法排除名为FolderToExclude的所有文件夹?
我已经尝试了以下代码,但有一些小变化:
App\:
resource: '../src/*'
exclude: '../src/{Domain,Entity,Migrations,Tests,**/FolderToExclude}'
但它不起作用:(
答案 0 :(得分:2)
在Symfony 4.1中。但有is an closed bug和pull request可以使这个功能可用于symfony 4.2!
答案 1 :(得分:0)
排除某些目录会为服务容器初始化和服务自动加载处理带来一些好处和效率......
但是,通过'排除'服务配置选项也可以实现其他一些重要功能:
排除子目录块是保护SF4应用程序中内部包名称空间的安全方法。这也可以防止内部捆绑包与App捆绑包之间的自动加载冲突,而不是SF4的一部分。
在您的情况下,最好手动指定每个FolderToExclude的路径,检查与App子文件夹没有交叉边界。
希望这有助于您的设计决策。