feat: added doctrine mapping builder
Как продолжение концепции "модули всё своё носят с собой" добавлена возможность использования своей конфигурации маппинга для каждого модуля наравне с конфигурацией сервисов и роутинга.
XML формат выбран как наиболее быстрый согласно документации: Doctrine Mapping
Путь "Infrastructure/Doctrine/Mapping" выбран из соображений совместимости с проектами, использующими многоуровневую архитектуру.
@vudaltsov - please review, as there is no way to assign a pull request to someone
Зачем если все настраивается в стандартном конфиге доктрины config/packages/doctrine.yaml
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/'
prefix: 'App\'
alias: App
Спасибо за проявленный интерес.
Да, Вы абсолютно правы и мы можем вручную прописывать каждый раз изменения для маппинга в doctrine.yaml. Равно как и конфигурацию сервисов в services.yaml и роутов в routes.yaml. Мало того, мы там тоже можем реализовать разделение конфигураций для каждого модуля путем импорта отдельных файлов модульных конфигов в основной. Это все есть в документации: How to Import Configuration Files/Resources.
Однако, более удобным представляется вариант автоматического конфигурирования (что собственно и сделано в оригинальном коде для сервисов и роутов). В этом случае мы немного автоматизируем процесс (исключая дополнительное ручное конфигурирование), уменьшаем вероятность внесения ошибок при добавлении новых модулей или рефакторинге существующих, а также несколько повышаем удобство код-ревью, так как все изолировано и не нужно производить дополнительный анализ на корректность правок вне основного модуля.