MVC против HMVC для разработки веб-приложений - PullRequest
25 голосов
/ 28 марта 2011

Я использую шаблон MVC для веб-разработки.Я использую codeIgniter Framework.Я нашел http://fuelphp.com/ и http://kohanaframework.org/, они используют HMVC.Это еще не ясно из HMVC, и почему мы должны использовать HMVC вместо MVC?Я запутался после прочтения шаблона HMVC, и он не слишком отличается от MVC.Не могли бы вы объяснить, почему мы должны использовать HMVC для разработки веб-приложений?

Ответы [ 3 ]

29 голосов
/ 18 мая 2015

HMVC может делать все, что может MVC, и даже больше

Одна из вещей, с которой вы будете или боролись в MVC, заключается в том, что вы не можете вызывать контроллер из другого контроллера (если вы не используете пользовательскую библиотекуили помощник для этого)

в HMVC (контроллер представления иерархической модели) вы можете сделать это, я бы суммировал все качества здесь:

  • повторное использование вашего кода в других проектах
  • упростить обслуживание вашего проекта
  • масштабировать ваш проект
  • организовать код
  • модульная структура

вы никогда не вернетесь в MVCпосле попытки HMVC вот картинка, чтобы быть более четкой

See picture

для использования CodeIgniter «Модульные расширения - HMVC»

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

Контроллеры модулей можно использовать как обычные контроллеры или контроллеры HMVC, и ониможет использоваться в качестве виджетов, чтобы помочь вам создать частичные представления.

Если вы хотите использовать codeigniter с шаблоном HMVC, вы можете использовать Модульные расширения - HMVC здесь

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc

и вот несколько хороших и забавных видеоуроков, которые приведут вас на рельсы с HMCV в codeigniter

https://www.youtube.com/watch?v=8fy8E_C5_qQ&list=PLBEpR3pmwCawDZ6FgNYoyvicEz4HrJPec&index=1

надеюсь, что это поможет!

21 голосов
/ 28 марта 2011

Шаблон Hierarchical-Model-View-Controller (HMVC) является прямым расширением шаблона MVC, который решает многие из проблем уже упомянутых масштабируемости.HMVC впервые был описан в блоге под названием HMVC: многоуровневый шаблон для разработки мощных клиентских уровней на веб-сайте JavaWorld в июле 2000 года. Большая часть статьи посвящена преимуществам использования HMVC с графическими пользовательскими интерфейсами.Было некоторое предположение , что авторы фактически интерпретировали другой шаблон, называемый Presentation-Abstraction-Control (PAC), описанный в 1987 году. Статья в JavaWorld предоставляет подробное объяснение того, как HMVC может помочь в разработкенастольных приложений с графическим интерфейсом.Цель этой статьи - продемонстрировать, как HMVC можно использовать для создания масштабируемых веб-приложений.

HMVC - это набор традиционных триад MVC, работающих как одно приложение.Каждая триада полностью независима и может выполняться без присутствия какой-либо другой.Все запросы, сделанные к триадам, должны использовать интерфейс контроллера, никогда не загружая модели или библиотеки вне их собственного домена.Физическое расположение триад в среде хостинга не имеет значения, если оно доступно из всех других частей системы.Отличительные особенности HMVC стимулируют повторное использование существующего кода, упрощают тестирование разрозненных частей системы и обеспечивают легкое расширение или расширение приложения.

Из Масштабирование веб-приложений с помощью HMVC Сэм де Фрейссинет

4 голосов
/ 21 апреля 2011

Другой HMVC-фреймворк, который вы должны проверить, это Alloy .Я попытался объяснить концепцию в терминах непрофессионала на справочной странице HMVC Architecture , а в этот ответ StackOverflow на аналогичный вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...