MZZ.Framework 0.3.x: Документация
Разделы

3.5 MVC

Шаблон проектирования MVC (Model-View-Controller) организует и разделяет приложение на три отдельные роли:

Слой модели представлен в mzz ORM.

Слой представления использует Smarty в качестве шаблонного движка. Более подробное описание работы со Smarty вы можете найти на официальном сайте.

Контроллер -- слой, связывающий модель и представление. Именно в контроллер поступают данные запроса, на основе которых происходит получение нужных данных с помощью модели, и именно в контроллере эти данные в "сыром" виде передаются в шаблон. Контроллер вызывается шаблоном и обрабатывает какое-то определённое действие (action). Рассмотрим типичный контроллер mzz (отображение конкретной новости):

<?php
 
class newsViewController extends simpleController
{
    protected function getView()
    {
        $newsMapper = $this->toolkit->getMapper('news', 'news');
 
        $id = $this->request->getInteger('id');
        $news = $newsMapper->searchByKey($id);
 
        if (empty($news)) {
            return $this->forward404($newsMapper);
        }
 
        $this->smarty->assign('news', $news);
        return $this->smarty->fetch('news/view.tpl');
    }
}
 
?>

Контроллер в mzz должен быть отнаследован от базового класса simpleController и реализовывать как минимум один метод - getView(). Уровень доступа к этому методу должен быть protected, потому как этот метод запускается автоматически из simpleController, после того как будут произведены необходимые подготовительные действия. Ручной запуск контроллеров рекомендуется делать через метод run() (однако, вероятно, вам это не понадобится делать).

В классе simpleController на стадии инициализации создаются ссылки на следующие объекты:

Данные, которые возвращает метод getView(), будут добавлены к текущему ответу клиенту.