Advanced шаблон и организация структуры модулей

Обсуждаем, как правильно строить приложения
Ответить
Matvik
Сообщения: 194
Зарегистрирован: 2013.06.21, 02:32

Advanced шаблон и организация структуры модулей

Сообщение Matvik »

Здравствуйте! В чате телеграма образовалась дискуссия, и к общему выводу пока не пришли. Суть вопроса:
Я раньше писал только с использованием шаблона basic. Там все просто - есть папка модулей, в ней модули каждый в своей подпапке, и можно еще разделить контроллеры на фронт и бек.
Теперь решил попробовать advanced, и столкнулся с дилеммой: как организовать модули? По-сути, выработалось несколько альтернатив:
  • В каждом приложении (и в common) папка с модулями, в ней по папке на каждый модуль. То есть, по сути, один модуль выходит раскидан в три папки по приложениях. Минус - модуль не в одном месте.
  • Так, как в предыдущем варианте, но полностью независимые модули (то есть, без common). Тогда придется дублировать модели, например. Зато, оба приложения полностью независимы.
  • Третий вариант - отдельная папка с модулями, каждый в себе уже имеет подпапки frontend, backend и т. д. Так, как тут описано: http://www.elisdn.ru/blog/85/seo-servic ... of-modules. Но - в таком случае пропадает четкое разделение на фронтенд и бекенд в структуре проекта. Такое можно сделать и на basic шаблоне легко.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Advanced шаблон и организация структуры модулей

Сообщение samdark »

По ситуации... все способы из перечисленных хороши, но надо выбирать под задачу.
Matvik
Сообщения: 194
Зарегистрирован: 2013.06.21, 02:32

Re: Advanced шаблон и организация структуры модулей

Сообщение Matvik »

samdark писал(а): 2017.08.08, 18:13 По ситуации... все способы из перечисленных хороши, но надо выбирать под задачу.
Спасибо. А какие критерии? Просто без опыта тут сложно разобраться, как именно поступать в том или ином случае.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Advanced шаблон и организация структуры модулей

Сообщение zelenin »

просто модуль как отдельная структура без подразделения на fronend/backend.
Matvik
Сообщения: 194
Зарегистрирован: 2013.06.21, 02:32

Re: Advanced шаблон и организация структуры модулей

Сообщение Matvik »

zelenin писал(а): 2017.08.08, 18:27 просто модуль как отдельная структура без подразделения на fronend/backend.
То есть забить на advanced шаблон? Как я понимаю в нем суть именно в таком разделении.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Advanced шаблон и организация структуры модулей

Сообщение zelenin »

Matvik писал(а): 2017.08.08, 18:39
zelenin писал(а): 2017.08.08, 18:27 просто модуль как отдельная структура без подразделения на fronend/backend.
То есть забить на advanced шаблон? Как я понимаю в нем суть именно в таком разделении.
advanced - это логическое разделение на несколько приложений в контексте фронтенд/админка (безопасность например). Бизнес-слой у них может быть и должен быть одинаков. Не надо размазывать модуль по частям, не надо дублировать модели. Если хотите, модели и сервисы храните непосредственно в модуле, а контроллеры пихайте в соответствующие части приложения.
Matvik
Сообщения: 194
Зарегистрирован: 2013.06.21, 02:32

Re: Advanced шаблон и организация структуры модулей

Сообщение Matvik »

zelenin писал(а): 2017.08.08, 18:45
Matvik писал(а): 2017.08.08, 18:39
zelenin писал(а): 2017.08.08, 18:27 просто модуль как отдельная структура без подразделения на fronend/backend.
То есть забить на advanced шаблон? Как я понимаю в нем суть именно в таком разделении.
advanced - это логическое разделение на несколько приложений в контексте фронтенд/админка (безопасность например). Бизнес-слой у них может быть и должен быть одинаков. Не надо размазывать модуль по частям, не надо дублировать модели. Если хотите, модели и сервисы храните непосредственно в модуле, а контроллеры пихайте в соответствующие части приложения.
Ок. а можно пример, как оно выглядит на практике?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Advanced шаблон и организация структуры модулей

Сообщение zelenin »

Matvik писал(а): 2017.08.08, 18:51
zelenin писал(а): 2017.08.08, 18:45
Matvik писал(а): 2017.08.08, 18:39

То есть забить на advanced шаблон? Как я понимаю в нем суть именно в таком разделении.
advanced - это логическое разделение на несколько приложений в контексте фронтенд/админка (безопасность например). Бизнес-слой у них может быть и должен быть одинаков. Не надо размазывать модуль по частям, не надо дублировать модели. Если хотите, модели и сервисы храните непосредственно в модуле, а контроллеры пихайте в соответствующие части приложения.
Ок. а можно пример, как оно выглядит на практике?
ровно так как сказал. что конкретно интересует?
Matvik
Сообщения: 194
Зарегистрирован: 2013.06.21, 02:32

Re: Advanced шаблон и организация структуры модулей

Сообщение Matvik »

Не надо размазывать модуль по частям, не надо дублировать модели. Если хотите, модели и сервисы храните непосредственно в модуле, а контроллеры пихайте в соответствующие части приложения.
Вот это. Структуру папок при таком подходе.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Advanced шаблон и организация структуры модулей

Сообщение zelenin »

Matvik писал(а): 2017.08.09, 00:14
Не надо размазывать модуль по частям, не надо дублировать модели. Если хотите, модели и сервисы храните непосредственно в модуле, а контроллеры пихайте в соответствующие части приложения.
Вот это. Структуру папок при таком подходе.
/frontend
../controllers
../views
/backend
/modules
../models
../services
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Advanced шаблон и организация структуры модулей

Сообщение maleks »

Matvik писал(а): 2017.08.08, 18:11 Третий вариант - отдельная папка с модулями, каждый в себе уже имеет подпапки frontend, backend и т. д. Так, как тут описано
Этот вариант выглядит само неплохо, но вот подумал, а если такой модуль потребуется подключить в basic шаблон, будут же проблемы, т.к. там смысл что делается через подмену controllerNamesnace и может быть только одно. Или это как то обходится?
Yii2 universal module sceleton - for basic and advanced templates
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Advanced шаблон и организация структуры модулей

Сообщение maleks »

Не до конца дочитал. Там Дмитрий модуль по 2 раза подключает, с разными неймспейсами.
Хорошо бы чтобы 1 раз.
Я вот подумал, может через controllerMap такое можно имитировать... Попробую.
Yii2 universal module sceleton - for basic and advanced templates
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Advanced шаблон и организация структуры модулей

Сообщение maleks »

Дела продвигаются.
Успешно пока. 8-)
За основу то что у Дмитрия, но без необходимости на basic шаблоне подключать 2 раза.
Есть какие то особые ожидания от самодостаточного модуля, который несет в себе функционалы фронта и бэка, и может без проблем подключиться и к advanced и к basic шаблону?
Yii2 universal module sceleton - for basic and advanced templates
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Advanced шаблон и организация структуры модулей

Сообщение maleks »

Продолжение моих изысканий тут.
Yii2 universal module sceleton - for basic and advanced templates
Ответить