@matperez

Как структурировать проекты на Yii2?

Здравствуйте! Расскажите каким образом вы структурируете файлы в проектах на Yii?
У меня есть не очень большой проект в котором папка с компонентами уже разрослась до 50 файлов и все говорит, что их будет еще больше. Например, есть такие вещи как Model, ModelQuery, ModelRepository, ModelFactory, ModelRepositoryInterface и ModelFactoryInterface. Куда это все хозяйство раскладывать? Сейчас у меня Model лежит в папке models, все остальное в components. А есть еще куча адаптеров для сторонних библиотек и сервисов работающих сами по себе.
Часть функционала иногда получается упаковывать в модули, если он отвечает за конкретный аспект деятельности сайта (например, процесс заказа и все соответствующие компоненты, хелперы, формы, виджеты, контроллеры и ассеты).
Часть можно выделять в отдельные библиотеки и подключать их потом через composer. Но все равно остается куча общего кода, который просто сваливается в папку с компонентами.
Сталкивались ли вы с подобной проблемой? Считаете ли вы это проблемой? Как решаете?

upd// в общем, не считая модулей и библиотек, файлы в проекте можно компоновать всего по двум категориям: по фичам и по типам. сами разработчики yii2 делят свой фреймворк по фичам (web, console, base, mail), но базовое приложение организовано по типам (models, controllers, components). отсюда и косяк: вроде бы фич реализовано много, типов объектов используется тоже много, но на отдельные модули или пакеты composer они в отдельности не тянут. для себя решил разделить папку с компонентами по фичам и туда уже раскидать все разнообразие классов. А корень проекта оставить стандартным с разделением по типам.
  • Вопрос задан
  • 439 просмотров
Решения вопроса 1
orlov0562
@orlov0562 Куратор тега PHP
I'm cool!
Я бы группировал по типу, внутри типа по области применения
- app/models/user
- app/models/order
- app/models/...
- app/factories
- app/repositories
- app/...
- runtime
- modules
- vendors
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
fornit1917
@fornit1917
Да кто вам не дает папку components (и другие) сгруппировать по подпапкам и неймспейсам?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы