На даний момент я розробляю власну структуру PHP 5.3 HMVC під назвою Alloy . Оскільки я дуже інвестую в HMVC і продаю його, я подумав, що можу запропонувати іншу точку зору, і, можливо, краще пояснення, чому слід використовувати HMVC та користь, яку він приносить.
Найбільша практична вигода від використання архітектури HMVC - це "widgetilization" змістових структур. Прикладом можуть бути коментарі, рейтинги, покази RSS-каналів Twitter або блогу або відображення вмісту кошика для веб-сайту електронної комерції. По суті, це вміст, який потрібно відображати на декількох сторінках, а можливо, навіть у різних місцях, залежно від контексту основного запиту HTTP.
Традиційні рамки MVC зазвичай не дають прямої відповіді на такі типи контентних структур, тому люди зазвичай закінчують дублювання та перемикання макетів, використовуючи власні помічники, створюючи власні структури віджетів або бібліотечні файли або витягуючи непов'язані дані з основних запитуваних Контролер, щоб просунутись до виду і частково вивести. Жоден із них не є особливо хорошими варіантами, оскільки відповідальність за надання певного вмісту або завантаження необхідних даних закінчується просоченням у декілька областей та дублюванням у місцях його використання.
Очевидним рішенням є HMVC, або конкретно можливість відправки суб-запитів до Контролера для виконання цих обов'язків. Якщо ви думаєте, що ви робите, це точно відповідає структурі контролера. Вам потрібно завантажити деякі дані про коментарі та відобразити їх у форматі HTML. Таким чином, ви надсилаєте запит до Контролера коментарів з деякими парамами, він взаємодіє з Моделлю, вибирає перегляд, і Перегляд відображає вміст. Єдина відмінність полягає в тому, що ви хочете, щоб коментарі відображалися вбудованими, під статтею блогу користувач переглядає замість повністю окремої повної сторінки коментарів (хоча при підході HMVC ви можете фактично обслуговувати як внутрішні, так і зовнішні запити одним і тим же контролером і "убивати" дві птиці з одним каменем », як мовиться). Щодо цього, HMVC - це справді природний побічний продукт, що прагне до підвищення модульності коду, повторної використання та підтримання кращого розділення проблем. ЦЕ є торговою точкою HMVC.
Тож хоча в статті TechPortal Сем де Фрейссінета про масштабування за допомогою HMVC цікаво подумати, це не де 90% + людей, які використовують рамки HMVC, отримуватимуть від цього реальну, практичну та щоденну вигоду.