Здравствуйте! В чате телеграма образовалась дискуссия, и к общему выводу пока не пришли. Суть вопроса:
Я раньше писал только с использованием шаблона basic. Там все просто - есть папка модулей, в ней модули каждый в своей подпапке, и можно еще разделить контроллеры на фронт и бек.
Теперь решил попробовать advanced, и столкнулся с дилеммой: как организовать модули? По-сути, выработалось несколько альтернатив:
В каждом приложении (и в common) папка с модулями, в ней по папке на каждый модуль. То есть, по сути, один модуль выходит раскидан в три папки по приложениях. Минус - модуль не в одном месте.
Так, как в предыдущем варианте, но полностью независимые модули (то есть, без common). Тогда придется дублировать модели, например. Зато, оба приложения полностью независимы.
Третий вариант - отдельная папка с модулями, каждый в себе уже имеет подпапки frontend, backend и т. д. Так, как тут описано: http://www.elisdn.ru/blog/85/seo-servic ... of-modules. Но - в таком случае пропадает четкое разделение на фронтенд и бекенд в структуре проекта. Такое можно сделать и на basic шаблоне легко.
zelenin писал(а): ↑2017.08.08, 18:27
просто модуль как отдельная структура без подразделения на fronend/backend.
То есть забить на advanced шаблон? Как я понимаю в нем суть именно в таком разделении.
advanced - это логическое разделение на несколько приложений в контексте фронтенд/админка (безопасность например). Бизнес-слой у них может быть и должен быть одинаков. Не надо размазывать модуль по частям, не надо дублировать модели. Если хотите, модели и сервисы храните непосредственно в модуле, а контроллеры пихайте в соответствующие части приложения.
zelenin писал(а): ↑2017.08.08, 18:27
просто модуль как отдельная структура без подразделения на fronend/backend.
То есть забить на advanced шаблон? Как я понимаю в нем суть именно в таком разделении.
advanced - это логическое разделение на несколько приложений в контексте фронтенд/админка (безопасность например). Бизнес-слой у них может быть и должен быть одинаков. Не надо размазывать модуль по частям, не надо дублировать модели. Если хотите, модели и сервисы храните непосредственно в модуле, а контроллеры пихайте в соответствующие части приложения.
То есть забить на advanced шаблон? Как я понимаю в нем суть именно в таком разделении.
advanced - это логическое разделение на несколько приложений в контексте фронтенд/админка (безопасность например). Бизнес-слой у них может быть и должен быть одинаков. Не надо размазывать модуль по частям, не надо дублировать модели. Если хотите, модели и сервисы храните непосредственно в модуле, а контроллеры пихайте в соответствующие части приложения.
Не надо размазывать модуль по частям, не надо дублировать модели. Если хотите, модели и сервисы храните непосредственно в модуле, а контроллеры пихайте в соответствующие части приложения.
Не надо размазывать модуль по частям, не надо дублировать модели. Если хотите, модели и сервисы храните непосредственно в модуле, а контроллеры пихайте в соответствующие части приложения.
Matvik писал(а): ↑2017.08.08, 18:11
Третий вариант - отдельная папка с модулями, каждый в себе уже имеет подпапки frontend, backend и т. д. Так, как тут описано
Этот вариант выглядит само неплохо, но вот подумал, а если такой модуль потребуется подключить в basic шаблон, будут же проблемы, т.к. там смысл что делается через подмену controllerNamesnace и может быть только одно. Или это как то обходится?
Не до конца дочитал. Там Дмитрий модуль по 2 раза подключает, с разными неймспейсами.
Хорошо бы чтобы 1 раз.
Я вот подумал, может через controllerMap такое можно имитировать... Попробую.
Дела продвигаются.
Успешно пока.
За основу то что у Дмитрия, но без необходимости на basic шаблоне подключать 2 раза.
Есть какие то особые ожидания от самодостаточного модуля, который несет в себе функционалы фронта и бэка, и может без проблем подключиться и к advanced и к basic шаблону?