У меня есть вопросы, касающиеся модели HMVC от Kohana.Мне очень нравится идея разделения вещей как компонентов в рамках одних и тех же принципов (MVC) для масштабирования и упрощения создания API.
Хотя у меня есть некоторые недостатки, такие как потеря знаний.
Например, у меня могут быть компоненты, называемые news и category .Кроме того, контроллеры сайта просто делегируют полный запрос и собирают все html / данные для шаблонов сайта через эти компоненты.
Site controller
/ \
/ \
categories news
Когда мне нужны все категории для боковой панели, я могу вызвать:/ категории / список.Когда я хочу новость, я могу позвонить / новости / ID.Оба возвращают html.
Если у меня есть контроллер сайта newsreadon, основной задачей которого является показ новостной статьи, этот контроллер получит все категории для боковой панели.Затем он будет извлекать новость.
Newsreadon
/ \
/ \
categories/list (html) news/<id> (html)
Когда я отображаю все элементы в шаблоне сайта, я хочу знать «заголовок» новостей для тега заголовка html, но я не могу знать, потому чтоЯ возвращаю html.
Мне кажется, что есть несколько решений:
- Сохранение заголовка в каком-то реестре (но это теряется, если я масштабирую компонент на другом сервере и использую HTTP),Так что с точки зрения масштабирования, нет хорошего выбора.
- Вернуть json с полями title и html.
- Считайте некоторую часть html, например, h2, для заголовка
Решение 2 кажется наименее неприятным и поддерживает связь без гражданства в такте.
Мне действительно интересно, как вы решили бы это элегантным способом?Я пропускаю «решение»?
РЕДАКТИРОВАТЬ: Интересно читать, чтобы понять HMVC от Кохана: http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/