Я разрабатываю приложение с Symfony2, которое имеет 3 основные части, называемые frontoffice, backoffice, admin. Я думал создать три отдельных пакета: FrontOfficeBundle, BackOfficeBundle, AdminBundle, но Symfony docs говорит, что каждый комплект не должен иметь никакого отношения друг к другу. Объект уже является общим свойством и, вероятно, некоторыми моделями. Я мог бы создать SharedBundle, но это не имеет смысла. Я помню, когда я создал приложение через 2 года, когда у меня было 15 пачек, и все связаны друг с другом, и я по опыту знаю, что это кошмар.
Должен ли я иметь только один пакет AppBundle и разделение логики в папках, например. Контроллер /Admin; Контроллер/FrontOffice, Контроллер /BackOffice?
Какой лучший подход?
Это не помешает создать пакет, поэтому сделайте отдельный набор для нужного вам материала в нескольких пакетах, например, я, как правило, создаю EntityBundle, который содержит сущности и их репозитории (в качестве службы).
Конечно, вы можете просто использовать один AppBundle, но, пожалуйста, не вводите свою логику в контроллеры → создавайте многоразовые сервисы! Внесите необходимые вам услуги в ваш контроллер (который тоже должен быть сервисом).
Нет такого подхода, как лучший подход.
Однако вместо группировки по типу класса (Controller, Command, Form, Templates) внутри каталога мне нравится создавать один "компонентный" каталог для каждого действия запроса. Поэтому я бы
Action
FrontOffice
BackOffics
Admin
User
UserController.php
UserFormType.php
UserTemplate.html.twig
Группировка файлов таким образом действительно сокращает время нахождения различных файлов. Это "лучший" подход? Неа. Но это работает для меня.