Mv-фреймворк

Материал из Циклопедии
Перейти к навигации Перейти к поиску
программное обеспечение
Mv-фреймворк
Файл:MV framewrok.svg
ТипПрограммный каркас для создания сайтов, интернет-магазинов и веб-приложений с административной панелью
АвторMaxim Zaykov
Написана наPHP
Первый выпуск07.04.2012
СостояниеАктивное
ЛицензияBSD License

MV framework — бесплатный MVC объектно-ориентированный фреймворк с открытым исходным кодом, написанный на языке программирования PHP. Отличительной особенностью является автоматическая генерация административной панели, в которой можно удобно управлять модулями проекта.

MV framework выпущен под лицензией BSD.

Основная идея MV framework — упростить и ускорить создание сайтов и веб-приложений при помощи встроенного CMF, позволяющего управлять контентом через панель администратора.

История[править]

Первая версия MV framework была выпущена 7 апреля 2012 года. Через пять лет 15 апреля 2017 года была выпущена версия 2.0. с полностью обновленным интерфейсом административной панели. В административной панели администратор может поставить один из понравившихся скинов, разработанных в разных цветовых гаммах.

Текущая версия 2.5. выпущена 08.07.2021[1].

Преимущества[править]

  • Создание и редактирование контента сайта посредством CMF.
  • Автоматически создаваемая административная панель для управления сайтом.
  • Объектно-ориентированный подход и принципы MVC.
  • Скорость и простота PHP шаблонизирования.
  • Конструктор форм и SQL запросов.
  • ORM и готовые функциональные блоки такие как сортировка, фильтрация и т. д.
  • Быстрое добавление и изменение модулей.
  • Визуальный редактор
  • Пакетная загрузка изображений
  • и многое другое.

Технологии[править]

MV библиотеки периодически обновляются и включаются в состав ядра, ядро можно обновить на уже запущенном проекте.

Шаблоны проектирования[править]

В отличии от популярного паттерна Model-View-Controller в MV контроллер максимально упрощен и перенесен в шаблон. Выбором подключаемого шаблона управляет маршрутизатор.

Отсутствуют константы и глобальные переменные, все настройки передаются через объект Registry, который построен на паттерне Singleton. Классы моделей и плагинов автоматически загружаются в системе по мере надобности.

CMF[править]

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

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

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

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

Примеры кода[править]

Новостная лента[править]

Создаем файл модели models/news.model.php <syntaxhighlight lang="php"> 1 <? 2 class News extends Model 3 { 4 protected $name = "Новости"; 5 6 protected $model_elements = array( 7 array("Активация", "bool", "active", array("on_create" => true)), 8 array("Дата", "date", "date", array("required" => true)), 9 array("Название", "char", "name", array("required" => true)), 10 array("Ссылка", "url", "url", array("unique" => true, "translit_from" => "name")), 11 array("Изображение", "image", "image"), 12 array("Текст новости", "text", "content", array("rich_text" => true)) 13 ); 14  ?> </syntaxhighlight>

Создаем файлы шаблонов views/view-news.php и views/view-news-details.php, а также вносим маршруты к шаблонам в файл config/routes.php <syntaxhighlight lang="php"> 1 $mvFrontendRoutes = array( ... , 2 3 "news/" => "view-news.php", 4 "news/*/" => "view-news-details.php" 5 ); </syntaxhighlight>

Источники[править]