Mv-фреймворк
Ошибка скрипта: Модуля «Unsubst» не существует.
Ошибка Lua в package.lua на строке 80: module 'Module:Yesno' not found.Ошибка скрипта: Модуля «Transclude» не существует.Шаблон:Карточка/название | |
---|---|
Шаблон:Wikidata | |
Шаблон:Wikidata |
Шаблон:Сортировка: по изображениямШаблон:ИТ:Общие проверки
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
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 ?>
Создаем файлы шаблонов views/view-news.php и views/view-news-details.php, а также вносим маршруты к шаблонам в файл config/routes.php
1 $mvFrontendRoutes = array( ... ,
2
3 "news/" => "view-news.php",
4 "news/*/" => "view-news-details.php"
5 );
Примечания[править]
- ↑ Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
Ссылки[править]
- Ошибка скрипта: Модуля «URL» не существует.Ошибка скрипта: Модуля «String/split» не существует. — официальный сайт Шаблон:Сначала имя
- Ошибка скрипта: Модуля «URL» не существует.Ошибка скрипта: Модуля «String/split» не существует. — официальный сайт Шаблон:Сначала имя
This article "Mv-фреймворк" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Mv-фреймворк. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.