Symfony4 Doctrine2 пользовательские NamingStrategy как - PullRequest
0 голосов
/ 08 мая 2018

Я только начинаю с Symfony4 / Doctrine2. Итак, мне нужно реализовать Doctrine2 custom NamingStrategy, но я не могу найти никакой документации / примеров, кроме этой: https://www.doctrine -project.org / projects / doctrine-orm / en / latest / reference / namingstrategy.html и этот ответ Как настроить префикс таблицы в symfony2 . Они мало что объясняют в терминах того, как это сделать в отношениях с Symfony4. Я понимаю, что мне нужно создать класс, который реализует интерфейс NamingStrategy, поэтому где я должен поместить этот класс в структуру папок Symfony4, в src/Entity?

Тогда мне нужно зарегистрировать класс в качестве службы, опытному разработчику Symfony должно быть легко узнать, но, как только я начинаю, было бы неплохо прояснить это. Спасибо, любой вклад приветствуется.

1 Ответ

0 голосов
/ 11 мая 2018

Во всяком случае, мне удалось самому разобраться.

Сначала я создал собственный класс стратегии именования, расширяющий 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
...