Skip to content

feat: added doctrine mapping builder#1

Open
GomelHawk wants to merge 1 commit into
vudaltsov:masterfrom
GomelHawk:master
Open

feat: added doctrine mapping builder#1
GomelHawk wants to merge 1 commit into
vudaltsov:masterfrom
GomelHawk:master

Conversation

@GomelHawk
Copy link
Copy Markdown

Как продолжение концепции "модули всё своё носят с собой" добавлена возможность использования своей конфигурации маппинга для каждого модуля наравне с конфигурацией сервисов и роутинга.

XML формат выбран как наиболее быстрый согласно документации: Doctrine Mapping

Путь "Infrastructure/Doctrine/Mapping" выбран из соображений совместимости с проектами, использующими многоуровневую архитектуру.

@GomelHawk
Copy link
Copy Markdown
Author

@vudaltsov - please review, as there is no way to assign a pull request to someone

@pchelk1n
Copy link
Copy Markdown

Зачем если все настраивается в стандартном конфиге доктрины config/packages/doctrine.yaml

    mappings:
        App:
            is_bundle: false
            type: annotation
            dir: '%kernel.project_dir%/src/'
            prefix: 'App\'
            alias: App

@GomelHawk
Copy link
Copy Markdown
Author

Спасибо за проявленный интерес.

Да, Вы абсолютно правы и мы можем вручную прописывать каждый раз изменения для маппинга в doctrine.yaml. Равно как и конфигурацию сервисов в services.yaml и роутов в routes.yaml. Мало того, мы там тоже можем реализовать разделение конфигураций для каждого модуля путем импорта отдельных файлов модульных конфигов в основной. Это все есть в документации: How to Import Configuration Files/Resources.

Однако, более удобным представляется вариант автоматического конфигурирования (что собственно и сделано в оригинальном коде для сервисов и роутов). В этом случае мы немного автоматизируем процесс (исключая дополнительное ручное конфигурирование), уменьшаем вероятность внесения ошибок при добавлении новых модулей или рефакторинге существующих, а также несколько повышаем удобство код-ревью, так как все изолировано и не нужно производить дополнительный анализ на корректность правок вне основного модуля.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants