Symfony4 Doctrine2自定义NamingStrategy如何

时间:2018-05-08 06:29:02

标签: doctrine-orm symfony4

我刚开始使用Symfony4 / Doctrine2。所以,我需要实现Doctrine2自定义NamingStrategy,但找不到除此之外的任何文档/示例:https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/namingstrategy.html和此答案How to setup table prefix in symfony2。在与Symfony4的关系中,他们没有解释如何做到这一点。我知道我需要创建一个实现NamingStrategy接口的类,那么我应该把这个类放在src/Entity的Symfony4文件夹结构中?

然后我需要将该类注册为服务,经验丰富的Symfony开发人员必须很容易知道,但是我刚刚开始,对此进行详细阐述会很高兴。谢谢,任何意见都表示赞赏。

1 个答案:

答案 0 :(得分:0)

无论如何,我已经设法弄明白了。

首先,我创建了扩展UnderscoreNamingStrategy的自定义命名策略类。我把它放在src / Service /下,仍然不确定它是否适合它进入文件夹层次结构。

然后我通过在config / services.yaml的末尾添加以下内容将此类注册为服务:

...

# Naming Strategy
app.naming_strategy.custom:
    class: App\Service\CustomNamingStrategy
    autowire: true

之后我通过编辑config / packages / doctrine.yaml将配置原则配置为使用此自定义命名策略,如下所示:

我已经注释掉了:

    naming_strategy: doctrine.orm.naming_strategy.underscore

并在其下添加:

    naming_strategy: app.naming_strategy.custom