Шаблон проектирования MVC
Шаблон проектирования MVC (Model-View-Controller), на русском «Модель-представление-контроллер» или «Модель-представление-поведение».
- Model (Модель) - уровень абстракции, например для обработки данных из базы данных (обработанные данные передаются контроллеру). SQL.
- View (Вид/Представление) - представление данных; вывод данных конечному пользователю (браузеру). В случае вебпрограмирования - это HTML код.
- Controller (Контроллер/Поведение) - логика работы; управление данными, генерируемыми в моделях и последующая передача их в вид. Служит "мостом" между View и Model.
Запрос пользователя (URL)=⇒Контроллер=⇒⇐=Модель=⇒Вид/Представление
- Представление. Модуль вывода информации. Это может быть шаблонизатор или что-либо подобное, цель которого является только в выводе информации в виде HTML на основе каких-либо готовых данных.
- Контроллер. Модуль управления вводом и выводом данных. Данный модуль должен следить за переданными в систему данными (через форму, строку запроса, cookie или любым другим способом) и на основе введённых данных решить:
- Передавать ли их в модель
- Вывести сообщение об ошибке и запросить повторный ввод (заставить модуль представление обновить страницу с учётом изменившихся условий)
Кроме того, контроллер обязан определять тип данных, полученных от модели (есть ли это готовый результат, отсутствие оного, либо сообщение об ошибке) и передавать информацию в модуль представления.
- Модель. Модуль, отвечающий за непосредственный расчёт чего-либо на основе полученных от пользователя данных. Результат, полученный этим модулем, должен быть передан в контроллер, и не должен содержать ничего, относящегося к непосредственному выводу (то есть должен быть представлен во внутреннем формате приложения).
Собственный PHP framework
Создание собственного framework используя шаблон MVC по пунктам:
- Действия который происходят при каждом запросе пользователя.
- Создание единой точки входа для всех запросов т.е. все запросы должны обрабатываться например через index.php. Обычно делается при помощи файла .htaccess и mod_rewrite.
- Создаем класс или функцию для автозагрузки наших классов.
- Создаем класс для хранения глобальных настроек используя шаблон Registry.
- Создаем class Router (шаблон Singlton): который содержит массив возможных страниц нашего сайта. Создаем метод getRoute который разбивает запрос пользователя ($_SERVER['REQUEST_URI']) на контроллер, действие(action) и параметры.
- Создаем класс View. Метод Render
- Начинается ветвление программы, после передачи проанализированного Что такое URI с примерами на вход классу FrontController
- Реализация FrontController шаблон
Обработка запроса пользователя (действия одинаковые для всех запросов):
- index.php
- bootstrap.php - инициализация фреймверка
- routes.php
Начинается ветвление программы
- FrontController.php
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!
7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах