Yii2. Модульная система в advanced приложении. Как наиболее логично делать?
Имеется advanced template с common/frontend/backend.
Проект хотим разрабатывать таким образом, чтобы написанные модули использовались в будущих проектах.
Например как реализовать следующее:
Модуль news. Мы создаем модуль в папке common. В данном модуле, я так понимаю, необходимо создать отдельные контроллеры и представления и для приложения frontend и для backend?
Как вообще написать и использовать общий модуль в обоих приложениях (frontend и backend). Как делаете это вы? Спасибо
Пишем модуль в отдельной папке. Не в common fronend backend. В common/config в modules => прописываем ваш модуль. Это для обоих приложений. Если надо для одного, то соответственно прописываем только в frontend или backend
Допустим модуль news, он содержит и управление новостями и их отображение. Т.е. если подключим в frontend и backend, то функционал просто продублируется. Можно будет управлять новостями и в одном и во втором приложении. Вот как сделать так, чтобы в backend было управление, а во frontend было отображение?
Да будет дублирование функционала. Может у класса модуля сделать свойства frontendEnable backendEnable..и в модуле при init в зависимости от этих параметров подключать только нужные контроллеры, там есть пару свойств типо controllerNamespaces. Ну или просто проверять что за контроллер и если что кидать 404...Соответственно в frontend modues => NewsModule frontandEnable = true backendEnable = false. Для backend тоже самое, но параметры наоборот.