Документация

Начало работы

Модели (models)

Шаблоны (views) и маршрутизация (routes)

Формы

SQL запросы

Сессии и безопасность

Плагины

CMF - гибкий framework для веб разработки

Фреймворк MV представляет собой гибкую CMF (Content Managemant Framework) для веб разработки. В основе данной CMF лежит идея по управлению разнородным контентом через единую административную панель с возможностью быстрого наращивания количества полей модуля при необходимости.

Оптимизируем код вместе с CMF MV framework

В MV присутствует разделение контента на таблицы, каждая из которых управляется своей моделью. Между моделями устанавливаются связи вида: внешний ключ, многие к одному и многие ко многим. Разделение контента по различным таблицам приводит к существенной оптимизации количества SQL запросов при извлечении данных.

При создании новой модели административный интерфейс создается автоматически на основе полей и типов данных. Для добавления нового поля в модель достаточно добавить 1 строку кода в PHP файл, описывающий класс модели и поле в базу данных, после чего поле отображается в административной панели и доступно для вывода на сайт.

Также CMF позволяет быстро и эффективно отображать содержимое моделей на страницах сайта. Система содержит много встроенных методов для вывода полей моделей и позволяет дописывать собственные методы в моделях для генерации HTML кода.

class Reviews extends Model
{
    protected $name = "Отзывы";
   
    protected $model_elements = array(
        array("Активация", "bool", "active", array("on_create" => true)),
        array("Порядок","order","order"),
        array("Дата", "date", "date"),
        array("Имя", "char", "name", array("required" => true)),
        array("Отзыв", "text", "review", array("required" => true)),
        array("Фото", "image", "image"),
    );

    public function display()
    {
        $rows = $this -> select(array("active" => 1,
                                      "order->asc" => "order", 
                                      "limit->" => $this -> pager -> getParamsForSelect()));
        $html = "";
       
        foreach($rows as $row)
        {
            if($row['image'])
                $html .= '<div class="review-img">'.$this -> cropImage($row['image'], 147, 147).'</div>';
      
            $html .= '<div class="review-text"><p>'.$row['review'].'</p></div>';
        }
       
        return $html;
    }
}

Обычные и простые модели MV

Обычные модели созданы для управления содержимым, которое можно классифицировать как списки. К ним относятся различные меню страниц, каталоги, фотогалереи, клиентские базы и т.д. При этом часть контента сайта не вписывается в данные рамки, потому что присутствует в единственном числе. К такому типу относятся: телефоны, логотип, контактные данные, слоганы, повторяющаяся информация в верхней и нижней части сайта, email для отправки писем с сайта, различные наcтройки и многие другие данные, которые не могут быть представлены списками из элементов одного типа.

Для управления такими данными MV предлагает использовать простые модели. В них данные модели хранятся в структуре вида "ключ, значение". Для добавления нового поля в простую модель достаточно дописать 1 строку кода в PHP файл модели, при этом вносить изменения в базу данных не нужно.

class Options extends Model_Simple
{
    protected $name = "Настройки";

    protected $model_elements = array(
        array("Адрес", "char", "address"),
        array("Уменьшать количество товара после заказа", "bool", "decrease_after_order")
    );
}

Для отображения на сайте данных из простой модели CMF предоставляет удобный интерфейс с минимальным количеством запросов к базе данных.