Паттерн 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();
Комментарии
0Нашли ошибку или хотите дополнить материал?