Я думаю, что понимаю концепцию HMVC после прочтения этого вопроса и ответа https://softwareengineering.stackexchange.com/questions/220480/hmvc-and-database-connections; выдержка из ответа ниже:
Давайте предположим, что вы хотите иметь представление, которое позволяет пользователю сделать
комментарий к сообщению в блоге. У вас будут поля для имени, электронной почты, заголовка
и комментарий, но вы также хотите, чтобы страна поля отображалась как
падать. В действии, которое отображает это представление, вы бы сделали
запрос базы данных, который загружает страны, а затем заполнить, что
падать. Что нормально, но это заставляет вас дублировать запрос и
вид, необходимый для отображения стран, если он вам нужен, в другом
часть вашего приложения. Лучшим подходом было бы создать
отдельный контроллер для стран с действием, которое возвращает представление
с раскрывающимся списком, а затем сделать это действие, когда вам нужно
показать список стран.
Что я не могу обернуть головой, так это то, что если я могу внутренне запросить контроллер / модель / представление, который просто отображает виджет (например, поле выбора страны), это не значит, что при обращении к этому URL из браузера также будет просто отображаться что посмотреть?
Как это управляется в HMVC, маршруты определены только как внутренние / внешние, поэтому при сопоставлении внутреннего маршрута с внешним запросом будет отображаться страница 404?
Является ли это, как правило, таким способом, и является ли приведенное выше описание / определение HMVC удовлетворительным с общим случаем его использования в большинстве веб-приложений?
Показывать вывод подзапроса в браузере не должно быть проблемой, поэтому я бы не стал беспокоиться, тем более, что эти URL-адреса не известны пользователю и безопасно выводить виджеты отдельно.
Несмотря на вышесказанное, вы могли, как упоминалось @deceze, не подключать эти контроллеры к каким-либо маршрутам. Если у вас есть маршрут по умолчанию (соответствующий всем запросам), вам придется отключить его.
Других решений пока нет …