Введение в PHP MVC Framework
MVC означает "модель-представление-контроллер". Основная цель MVC в php-отделить бизнес-логику и прикладные данные от пользовательского интерфейса. Итак, в этом уроке мы узнаем о фреймворке PHP MVC.
Архитектура MVC в PHP
Модель отвечает за управление данными, поскольку она хранит и извлекает сущности, используемые приложением, обычно из базы данных, и содержит логику, такую как получение информации, обновление её и т. д. реализовано приложением.
Представление отвечает за отображение данных, предоставляемых моделью. Графический интерфейс конечного пользователя, через который пользователь может взаимодействовать с приложением, т. е. HTML, CSS.
Контроллер получает запрос от пользователя, вызывает модель для выполнения требуемых операций и отправляет данные в представление. Он содержит бизнес-логику и обеспечивает связь между моделью и представлением. Контроллер является посредником между моделями и представлениями.
Зачем использовать PHP MVC Framework?
- PHP MVC Framework помогает упростить разработку.
- Он предоставляет стандартные методы для построения наших приложений.
- Повышается производительность разработчика.
- Соблюдение профессиональных стандартов кодирования.
Наш пример PHP имеет простую структуру; поместим каждый модуль MVC в одну папку. Есть три папки "controller”, “model”, "view".
- В controller мы создали файл UserController.php.
- Внутри model мы создали user.php.
- Внутри view мы создали файлы userlist.php и viewuser php.
Контроллер отвечает за прием запроса, его анализ, инициализацию и вызов модели, а также принимает ответ, данный моделью, и отправляет его в раздел представления. Задача контроллера - обрабатывать данные, которые пользователь вводит или отправляет через формы, а затем модель обновляет их соответствующим образом в базе данных. Точкой входа приложения будет index.php. Индексный файл делегирует все запросы контроллеру.
<?php include_once("controller/UserController.php"); $controller = new UserController(); $controller->invoke(); ?>Наш класс контроллера имеет только одну функцию для вызова контроллера и конструктора. Конструктор создает экземпляр модели и вызывает класс model для извлечения данных. После этого он вызывает соответствующую передачу данных, поступающих из модели в раздел просмотра. Код приведен ниже.
Имя файла: UserController.php
<?php include_once("model/User.php"); class UserController{ public $model; public function __construct(){ $this->model = new User(); } public function invoke(){ if(!isset($_GET['user'])){ $users = $this->model->getAllUser(); include 'view/userlist.php'; } else{ $user = $this->model->getUser($_GET['user']); include 'view/viewuser.php'; }}} ?>Модель MVC на PHP
Модель представляет данные и логику приложения. Он отвечает за хранение, удаление, обновление данных приложения. Как правило, она включает в себя операции с базой данных.
В этом примере модель представлена одним классом: классом "user". Класс "пользователь" - это класс сущностей. Их единственная цель - сохранить данные. В приведенном ниже фрагменте кода вы можете заметить, как модель возвращает определенного пользователя или список всех пользователей.
Имя файла: user.php
<?php class User { public $name; public $city; public $country; public function __construct($name = null,$city = null,$country = null) { $this->name = $name; $this->city = $city; $this->country = $country; } public function getAllUser() { //жестко закодированное значение, если вы не используете базу данных return array( "Юрий" => new User("Юрий","Вологда","Россия"), "John Smith" => new User("John Smith","Boston","USA") ); } public function getUser($name) { $users = $this->getAllUser(); return $users[$name]; } } ?>Представление
Представление отвечает за форматирование данных, полученных из модели, в форме, доступной пользователю.
Контроллер делегирует данные из модели конкретному элементу представления. Слой представления может использовать систему шаблонов для отображения html-страниц.
В нашем примере представление содержит только два файла: один для отображения сведений о конкретном пользователе, а другой - для отображения списка всех пользователей.
Имя файла: userlist.php
<html> <head></head> <title>Список пользователей</title> <body> <table> <thead> <tr> <th>Имя</th> <th>Город</th> <th>Страна</th> </tr> </thead> <tbody> <?php foreach ($users as $key => $user) { echo '<tr> <td> <a href="index.php?user='.$user->name.'">'.$user->name.'</a></td> <td>'.$user->city.'</td> <td>'.$user->country.'</td> </tr>'; } ?> </tbody> </table> </body> </html>
Имя файла: viewuser.php
<html> <head></head> <title>Просмотр пользователя</title> <body> <?php echo '<b>Имя: </b>' . $user->name . '<br/>'; echo '<b>Город: </b>' . $user->city . '<br/>'; echo '<b>Страна: </b>' . $user->country . '<br/>'; ?> </body> </html>
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Читайте также:
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.