PHP: Паттерн MVC (Model-View-Controller)
Паттерн MVC (Model-View-Controller) — это архитектурный паттерн, используемый для разделения приложения на три основных компонента: Модель (Model), Представление (View) и Контроллер (Controller). Это разделение помогает управлять сложными приложениями, позволяя разрабатывать, тестировать и поддерживать модель данных, пользовательский интерфейс и управляющую логику отдельно друг от друга.
Модель отвечает за доступ к данным, их хранение, а также за бизнес-логику. Она напрямую общается с базой данных и обрабатывает все запросы к данным.
Представление отвечает за отображение данных пользователю, полученных от контроллера. Оно только показывает данные, не содержит бизнес-логики.
Контроллер служит посредником между моделью и представлением. Он обрабатывает входящие запросы, обращается к модели за данными и определяет, какое представление должно быть отображено пользователю.
Пример реализации паттерна MVC в PHP
Допустим, мы создаем простое приложение на PHP, которое выводит список пользователей из базы данных.
Шаг 1: Модель
Создадим класс UserModel, который будет отвечать за получение данных о пользователях из базы данных.
class UserModel { public function getUsers() { # Предположим, что здесь код для запроса к базе данных return [ ['id' => 1, 'name' => 'Александр'], ['id' => 2, 'name' => 'Мария'] ]; } }
Шаг 2: Представление
Создадим простой файл представления usersView.php, который будет отображать данные о пользователях.
<!DOCTYPE html> <html> <head> <title>Список пользователей</title> </head> <body> <h1>Пользователи</h1> <ul> <?php foreach( $users as $user ): ?> <li><?= htmlspecialchars( $user['name'] ) ?></li> <?php endforeach; ?> </ul> </body> </html>
Шаг 3: Контроллер
Определим класс UserController, который будет взаимодействовать с моделью и представлением.
class UserController { public function listUsers() { $model = new UserModel(); $users = $model->getUsers(); require 'usersView.php'; } }
Шаг 4: Индексный файл
Создадим точку входа в приложение, где инициируем контроллер и вызовем метод для отображения списка пользователей.
require 'UserModel.php'; require 'UserController.php'; $controller = new UserController(); $controller->listUsers();
Комментарии