Как сделать Modulith в Symfony
Modulith — архитектурный стиль, при котором приложение остаётся монолитом, но код внутри разбит на модули (подпапки) по доменам. Классическая структура проектов выглядит так: ├── src ├── Command ├── Controller │ ├── Product │ └── User ├── Doctrine ├── Entity │ ├── Product.php │ └── User.php ├── Message ├── MessageHandler └── Kernel.php Структура modulith в Symfony выглядела б так: ├── src ├── Product │ ├── Command │ ├── Controller │ ├── Doctrine │ ├── Entity │ ├── Message │ └── MessageHandler ├── User │ ├── Controller │ └── Entity └── Kernel.php Разница в том, что в modulith каждый модуль (например Product, User) содержит все компоненты в своей папке, а не по всему проекту. Если нужна доработка условной корзины, вы сразу знаете где находится весь код отвечающий за корзину, меньше конфликтов при слиянии Вдобавок исчезают портянки файлов, когда открываете Entity, а там 30 файлов в столбик Часто самая большая сложность возникает у людей при конфигурации модулей. Ничто нам не мешает запихать всю конфигурацию в один общий файл, например config/services.yaml , но из-за этого файл быстро станет раздуваться, что снизит его поддерживаемость и в нем будет единая точка связности модулей. Поэтому конфигурацию модулей лучше выносить в сами модули
https://habr.com/ru/articles/911618/
#php #symfony #module #backend #systemdesign