Kohana 3.0's структура HMVC в терминах неспециалиста?

Так, я думаю, что понимаю каскадную файловую систему в, он - основные условия, но я, может казаться, не переношу голову вокруг 'структуры H'ierachy MVC. Кто-либо мог сказать мне преимущества об использовании HMVC по MVC, и это - основная намеченная функциональность?

Спасибо за внимание!

5
задан soren.qvist 10 June 2010 в 17:05
поделиться

3 ответа

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

Акцент делается на многократно используемых элементах графического интерфейса. Дополнительную литературу см. здесь: http://www.javaworld.com/javaworld/jw-07-2000/jw-0721-hmvc.html.

Редактировать: Вот актуальная ссылка, ориентированная на PHP: http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/. Кажется, там есть и более симпатичные иллюстрации.

5
ответ дан 18 December 2019 в 14:42
поделиться

Вы можете сделать запрос к странице (контроллер и действие найдены маршрутами) внутренним. Это можно сделать, например, так:

class Controller_Menu extends Controller
{
    public function action_index()
    {
        $this->request->response = view stuff ...
        $this->request->response->set('...', ...) // some vars
    }
}

и

class Controller_Home extends Controller
{
    public function action_index()
    {
        $this->request->response = ...; // some view stuff...
        $this->request->response->set('menu', 
            Request::factory('menu')->execute()->response // here happens the magic
        );
    }
}

Каждая страница, имеющая меню, не должна делать всю логику для загрузки меню и т.д. (например, из моделей). Вы просто делаете запрос к контроллеру, выполняете его и получаете результат. Очень полезно при правильном использовании.

5
ответ дан 18 December 2019 в 14:42
поделиться

Люди на форумах KO3 описывали способность HMVC как создание AJAX-запроса без дополнительного HTTP-запроса.

В реальном мире это возможно, если вы хотите построить систему, которая имеет API как неотъемлемую часть приложения. Например, Twitter. С помощью HMVC вы можете сначала написать API, а затем использовать его в приложении. Это сэкономит либо дублирование кода, либо дополнительный HTTP-запрос.

На данный момент, однако, работа таким образом довольно ограничена, в основном из-за типа запросов, которые могут быть отправлены. Вот сообщение на форуме, которое я сделал некоторое время назад по этому поводу. Оно может прояснить, как HMVC может быть полезен.

3
ответ дан 18 December 2019 в 14:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: