提问人:Lennert 提问时间:11/16/2023 最后编辑:Lennert 更新时间:11/16/2023 访问量:32
在 Symfony 依赖注入服务中,我可以排除所有不以特定后缀结尾的文件吗?
In the Symfony Dependency Injection Service, can I exclude all files in not ending in a specific suffix?
问:
我们使用 Symfony 依赖注入服务已经有一段时间了,但我们必须手动将每个服务链接到它的接口。 我想通过自动布线来自动化这一点,但我在排除选项上遇到了一些问题。
我注意到只有在更高版本中才能提供多个排除路径,因此我更新到当前 PHP 版本可以支持的最新版本 (v5.4)。
现在我可以成功地提供路径列表,但我不知道如何提供包含否定的路径。 文档提到排除选项可以是任何有效的 glob 模式,但即使我相信我的 glob 模式是有效的,它也不起作用。
例如,我想从我的域文件夹中排除所有非存储库类
- 不应排除 Domain/Repository/IUserRepository.php =>
- 应排除 Domain/Repository/UserRepository/UserDTO.php =>
我尝试过使用以下模式:
- 域/**/!(*存储库.php)
- 域/**/!(*存储库).php
- 域/**/[!]*存储库.php
但是,在代码内部进行调试时,当将模式转换为正则表达式时,它会原始地传递“!”字符。
有没有办法使用由 Symfony 处理的单个 glob 模式从 Domain 文件夹中排除所有非存储库类?
编辑:我在他们的 GitHub 上发现了一个被拒绝的问题和 PR:https://github.com/symfony/symfony/pull/35737
听起来他们要么认为这会对性能产生太大影响,要么想等到他们可以一次集成更多的 glob 模式“变体”。
如果有人仍然为我提供解决方案,那就太好了,但现在我倾向于排除除“存储库”文件夹之外的所有内容,并在其中重命名/移动所有其他文件以具有 DTO 后缀并排除这些文件。
答:
0赞
delboy1978uk
11/16/2023
#1
你离得很近!试试这个:
Domain/**/*[!Repository].php
如果您不想要存储库类,并且
Domain/**/*Repository.php
如果您确实需要存储库 claases
评论
0赞
Lennert
11/16/2023
嗨,我一直在使用这个网站来测试我的模式:globster.xyz 我尝试了你的模式,但我遇到了同样的问题。!和 [ 字符不被识别为特殊字符,只是添加到正则表达式中。
评论