Структура HMVC Kohana 3.0 с точки зрения непрофессионала? - PullRequest
5 голосов
/ 10 июня 2010

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

Спасибо за ваше время!

Ответы [ 3 ]

5 голосов
/ 10 июня 2010

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

Акцент сделан нана повторно используемых элементах GUI.См. Здесь для дополнительного чтения: 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 голосов
/ 10 июня 2010

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

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
        );
    }
}

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

3 голосов
/ 15 июня 2010

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

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

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

...