Правильно ли я понимаю принцип модульной архитектуры приложения?

Например у меня есть микродвижок, написанный на php, который имеет структуру mvc. В нем по минимуму написана реализация некоторых решений.
Для примера, я хочу для некоторых страниц сайта реализовать галерею. Тогда (По моей логике) я создаю в папке modules новую папку с именем модуля, в этой папке описываю класс модуля, добавляю в папку файл шаблона, в котором выводится галерея.
Теперь в шаблоне страницы сайта я вызываю мой модуль по названию и передаю необходимые параметры и после этого на странице должна выводиться галерея. Правильно ли я понимаю? Так ли должен вызываться модуль? (с учетом, что в autoload все прописано)

А если мне нужно написать модуль регистрации пользователя? Как здесь быть?
Я много пытался найти по модульной архитектуре и не нашел достойного ответа. Если есть ссылки, дайте, пожалуйста, чтобы я до конца понял принципы построения модульной архитектуры. (лучше с примерами на php)
  • Вопрос задан
  • 485 просмотров
Решения вопроса 2
dmitriylanets
@dmitriylanets
веб-разработчик
Я использую в своем движке описанный вами подход, собственно идея была позаимствована из битрикса. По поводу регистрации, в чем собственно проблема, реализуете также модулем и все.
Ответ написан
index0h
@index0h
PHP, Golang. https://github.com/index0h
Зависит от проекта конечно, но в понятие модуль обычно вкладывается что-то очень больше и независимое, например система управления пользователями, система управления платежами и т.д. В терминологии Symfony - это называется Bundle.

Модульный подход имеет место быть для случаев, когда эти самые модули разрабатываются разными командами и обладают минимальной, на сколько это возможно связью между ними.

А если мне нужно написать модуль регистрации пользователя? Как здесь быть?

Не использовать парадигму, которая вам не подходит. Почитайте про SOA. Если в двух словах: сервис - это некий набор бизнес логики, который умеет обычно всего одно действие, но делает его качественно.
Для сервиса регистрации данных вывод шаблона не нужен. Все, что он должен уметь: проверить входные данные для регистрации, сохранить их и оповестить свои зависимости об этом (например сервис отправки почты).

Разбивая проект именно на модули, но со сильной связностью вы постоянно будете сталкиваться с ситуациями: одни и те же действия/данные в разных контекстах требуют либо большего дробления (переход к сервисам), либо усложнения, что бы обхватить это количество контекстов.

З.Ы. Битрикс и "качественная архитектура" - это вещи не совместимые))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
yurygolikov
@yurygolikov
Смотри пример модульной архитектуры на уже известных фреймворках, таких как:
YII, Laravel, Symfony, Zend.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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