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 и готовые функциональные блоки такие как сортировка, фильтрация и т. д.
- Быстрое добавление и изменение модулей.
- Визуальный редактор
- Пакетная загрузка изображений
- и многое другое.
Технологии[править]
- PHP 7+
- Поддержка баз данных MySQL, SQLite
- PHP Data Objects — PDO
- Swift Mailer
- jQuery
- jQuery UI
- AJAX
- Redactor (OEM лицензия)
MV библиотеки периодически обновляются и включаются в состав ядра, ядро можно обновить на уже запущенном проекте.
Шаблоны проектирования[править]
- MVC
- ActiveRecord
- Singleton, одиночка
- Registry
- Database abstraction layer — DBAL
В отличии от популярного паттерна 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>