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 предоставляет удобный интерфейс с минимальным количеством запросов к базе данных.
Предыдущий раздел
Технологии