Влияние Codeigniter HMVC на производительность

Итак, HMVC в Codeigniter — это то, что нужно для масштабируемые веб-приложения (с Kohana 3) на основе многих обсуждений stackoverflow, таких как шаблоны HMVC и MVC против HMVC.

Но как использование подхода HMVC повлияет на производительность при использовании в Codeigniter? Насколько я понимаю, HMVC будет «имитировать контроллер». Предполагая однодневный «крупномасштабный» проект, будет ли реализация Codeigniter проблемой в будущем?


person csi    schedule 11.06.2011    source источник


Ответы (2)


Есть две основные функции, которые HMVC добавляет в CodeIgniter, что часто сбивает людей с толку:

  1. Модульный MVC
  2. Иерархический MVC

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

HMVC — это практика вызова контроллеров с других контроллеров без необходимости нового HTTP-запроса. На мой взгляд, это очень редко полезно, за исключением таких вещей, как вызов пользовательской страницы 404 или «виджетов».

MMVC почти ничего не добавляет к производительности, очевидно, вызов контроллера через HMVC почти в два раза медленнее.

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

person Phil Sturgeon    schedule 13.06.2011
comment
Действительно, виджеты — и я склонен согласиться, что они редко бывают полезными. К тому времени, когда вы закончите писать один в контроллер для использования с modules::run(), вы поймете, что это может быть просто библиотека - нет необходимости снова и снова без причины вызывать класс контроллера, маршрутизацию, глобальные процедуры очистки и т. д. - person Wesley Murch; 14.06.2011
comment
спасибо за разъяснение - возможно продолжение? Моей основной причиной (как я думал) для HMVC была возможность повторного использования кода. Если я хочу создать шаблон страницы с помощью CI, не требуется ли HMVC? Например, если я хочу, чтобы форма входа отображалась на каждой странице, не потребуется ли для этого HMVC? Спасибо. Я думал, что это частичные представления, для которых требуется HMVC, но я определенно готов учиться другим способом. - person csi; 16.06.2011

С HMVC вам больше не нужно кодировать свои модули, как это реализовано в codeigniter. Если клиенту нужна функция, которую вы уже сделали в своем предыдущем проекте, вы просто копируете ее и добавляете в свой текущий проект.

Как реализовано в codeigniter, вы можете писать код как обычно и реализовывать только те функции, которые, по вашему мнению, требуют HMVC.

Что касается производительности, то она зависит от того, как вы разрабатываете свое приложение в целом.

person Ernest Boabramah    schedule 22.09.2011