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

StackOverflow https://stackoverflow.com/questions/2308570

  •  22-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Это немного похоже на ajax, только чисто на стороне сервера.

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

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

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

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

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

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

Другие советы

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top