Подтвердить что ты не робот

Для чего я могу использовать архитектуру HMVC?

используемая мной инфраструктура PHP (Kohana) недавно реализовала архитектуру HMVC. Я прочитал, что это многоуровневый mvc, где запросы выполняются друг над другом. Это немного похоже на ajax, просто на стороне сервера. Я немного применил его в некоторых экспериментах, но не могу применить его к каким-либо из моих проектов (потому что я не могу найти в этом необходимости). Вы когда-либо использовали HMVC в проекте? Как это вам помогло?

4b9b3361

Ответ 1

Это немного похоже на ajax, просто на стороне сервера.

Это хорошая аналогия.

HMVC хорош для добавления виджетов на страницы - модульные биты контента, которые вы будете повторно использовать на нескольких страницах. Например, виджет корзины покупок. Вы можете сделать то же самое по-разному:

  • Библиотека. Мы привыкли перемещать многократный код из контроллера в библиотеку. Затем из контроллера вы можете загрузить результаты вызова этой библиотеки в переменную вида.
  • Вид. Вы можете загрузить представление (частичное) из основного представления. Это частичное представление может вывести контент из моделей. Вызов моделей из представлений не всегда популярен, но это не обязательно неправильно.

Однако у Kohana HMVC есть несколько преимуществ:

  • Согласованность - запросы HMVC обрабатываются так же, как внешние HTTP-запросы.
  • Power - запросы HMVC имеют одинаковые ресурсы Kohana, такие как HTTP-запросы, включая маршруты.
  • Pluggability. При вызове из представления запрос HMVC не имеет связи между контроллером (который присваивает результаты библиотеки представлению) и замещающим представлением. Вы касаетесь только одного файла, а не двух.

Я начинаю оценивать случай для HMVC и масштабируемость с помощью HTTP-запросов, связанных с Kiall. То же самое можно сделать с CURL. Тем не менее, было бы более естественно разрабатывать с Kohana HMVC, чем CURL с самого начала.

Ответ 2

Хорошо - Сэм де Фрейсине (aka samsoir), один из разработчиков Kohana, недавно опубликовал статью, посвященную этому вопросу.

http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/

Хотя это не единственное использование для HMVC - это одно из его более популярных применений. В основном речь идет о масштабируемости (как и количество запросов в секунду), но масштабируемость кода (как, например, как легко/сложно поддерживать код) может быть "решена" с теми же идеями.

Надеюсь, что это поможет:)

(Боковое примечание - его образцы кода основаны на личных изменениях Сэма в Кохане - см. примечание в конце статьи)

Ответ 3

В простом проекте вы даже не сможете найти реальное использование архитектурного шаблона HMVC. И вы даже не должны пытаться. Вот почему:

Весь смысл создания архитектуры HMVC состоял в том, чтобы сделать MVC немного DRY'er. Одним из основных преимуществ HMVC является повторное использование кода. Он позволяет вам иметь фрагменты, которые повторяются по всему вашему приложению (иногда в одном и том же месте, в другое время - нет).

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

Здесь вы можете прочитать оригинальную публикацию, в которой была представлена ​​HMVC. В 2000-м.