Варианта два:
1. Разделить модули на
бандлы
2. Разделить папками.
Первый способ достаточно популярный. Можете найти много вариантов на гидхаб, например
Sylius. Но, я думаю, вам больше нужен второй. Создаете папку Model (Доменная модель). Туда помещаете весь доменный слой, в том чиле сущности и репозитории.
App\:
resource: '../src/*'
exclude: '../src/{DependencyInjection,Model/User/Entity,Model/Work/Entity,Migrations,Tests,Kernel.php}'
User и
Work Модули.
Репозитории:
App\Model\User\Entity\User\UserRepository: ~
App\Model\Work\Entity\Members\Group\GroupRepository: ~
App\Model\Work\Entity\Members\Member\MemberRepository: ~
App\Model\Work\Entity\Projects\Role\RoleRepository: ~
App\Model\Work\Entity\Projects\Project\ProjectRepository: ~
App\Model\Work\Entity\Projects\Task\TaskRepository: ~
В переводах просто добавляйте
'translation_domain' => 'user'
и ваш файл в переводах будет
user.ru.yaml
. Подробнее есть в
документации.
Пример проекта есть на
гитхабе