我刚刚从Symfony4/Doctrine2开始。因此,我需要实现 Doctrine2 自定义NamingStrategy
但除了这个之外找不到任何文档/示例:https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/namingstrategy.html 和这个答案如何在 symfony2 中设置表前缀。他们没有解释如何在与Symfony4的关系中做到这一点。我知道我需要创建一个实现NamingStrategy
接口的类,那么我应该将这个类放在 Symfony4 文件夹结构中的什么位置,在src/Entity
?
然后我需要将类注册为服务,对于经验丰富的Symfony开发人员来说,这必须很容易知道,但是由于我刚刚开始,对此进行一些详细说明会很好。谢谢,任何意见不胜感激。
无论如何,我已经设法自己弄清楚了。
首先,我创建了扩展 UnderscoreNamingStrategy 的自定义命名策略类。我已将其放置在 src/Service/下,但仍然不确定这是否是它在文件夹层次结构中的正确位置。
然后我通过在config/services.yaml的末尾添加以下内容将此类注册为服务:
...
# Naming Strategy
app.naming_strategy.custom:
class: AppServiceCustomNamingStrategy
autowire: true
之后,我通过编辑 config/packages/doctrine.yaml 来配置原则以使用此自定义命名策略,如下所示:
我已经注释掉了:
naming_strategy: doctrine.orm.naming_strategy.underscore
并在其下添加:
naming_strategy: app.naming_strategy.custom