На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Введение в PHP MVC Framework



MVC означает "модель-представление-контроллер". Основная цель MVC в php-отделить бизнес-логику и прикладные данные от пользовательского интерфейса. Итак, в этом уроке мы узнаем о фреймворке PHP MVC.

Архитектура MVC в PHP

Модель отвечает за управление данными, поскольку она хранит и извлекает сущности, используемые приложением, обычно из базы данных, и содержит логику, такую как получение информации, обновление её и т. д. реализовано приложением.

Представление отвечает за отображение данных, предоставляемых моделью. Графический интерфейс конечного пользователя, через который пользователь может взаимодействовать с приложением, т. е. HTML, CSS.

Контроллер получает запрос от пользователя, вызывает модель для выполнения требуемых операций и отправляет данные в представление. Он содержит бизнес-логику и обеспечивает связь между моделью и представлением. Контроллер является посредником между моделями и представлениями.

Зачем использовать PHP MVC Framework?

  • PHP MVC Framework помогает упростить разработку.
  • Он предоставляет стандартные методы для построения наших приложений.
  • Повышается производительность разработчика.
  • Соблюдение профессиональных стандартов кодирования.
Давайте создадим для примера страницы, выводящие пользователей всех и по одному.

Наш пример PHP имеет простую структуру; поместим каждый модуль MVC в одну папку. Есть три папки "controller”, “model”, "view".



  1. В controller мы создали файл UserController.php.
  2. Внутри model мы создали user.php.
  3. Внутри 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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегистатьи IT, php, mvc

Читайте также:




Урок 15. Параллельный LINQ
700 человек в день


© upread.ru 2013-2022
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.