Учебное пособие по PHP MVC-фреймворку: CodeПример воспламенителя
Что такое PHP-фреймворк MVC?
PHP MVC — это шаблон проектирования приложений, который отделяет данные приложения и бизнес-логику (модель) от представления (представления). MVC означает модель, представление и контроллер.
Контроллер является посредником между моделями и представлениями.
Думайте о шаблоне проектирования MVC как об автомобиле и водителе.
В автомобиле есть ветровые стекла (вид), которые водитель (диспетчер) использует для наблюдения за движением впереди, а затем за скоростью или торможением (модель) в зависимости от того, что он видит впереди.
Зачем использовать PHP MVC Framework?
- PHP MVC Frameworks упрощает работу со сложными технологиями;
- Скрытие всех сложных деталей реализации
- Предоставление стандартных методов, которые мы можем использовать для создания наших приложений.
- Повышенная производительность разработчиков, поскольку базовая реализация таких действий, как подключение к базе данных, очистка пользовательского ввода и т. д., уже частично реализована.
- Соблюдение профессиональных стандартов кодирования
Шаблон проектирования PHP MVC
Давайте теперь кратко обсудим каждый компонент шаблона проектирования MVC.
Модель – эта часть связана с бизнес-логикой и данными приложения. Его можно использовать для проверки данных, обработки данных и их хранения. Данные могут быть получены из;
- плоский файл
- база данных
- XML-документ
- Другие действительные источники данных.
Контроллер – эта часть занимается запросами пользователей на ресурсы с сервера.
Например, когда пользователи запрашивают URL-адрес …/index.php?products=list, контроллер загрузит модель продуктов для получения данных о продуктах, а затем выведет результаты в виде списка.
Короче говоря, контроллер связывает модели и представления вместе в зависимости от запрошенных ресурсов.
Виды – эта часть посвящена представлению данных пользователю. Обычно это HTML-страницы.
Типы фреймворка PHP MVC
Выбор лучшего PHP-фреймворка — непростая задача.
Вам не нужно писать собственную структуру, чтобы воспользоваться преимуществами MVC.
Вам следует только попытаться создать свой собственный дизайн приложения, связанного с MVC, чтобы понять, как работают платформы MVC.
Как только вы освоитесь с тем, как работают платформы MVC, вам следует перейти к зрелым и уже протестированным платформам.
В таблице ниже кратко описаны некоторые популярные фреймворки PHP и функции, которые предлагает каждый фреймворк.
| Рамки | Описание |
|---|---|
|
|
Это один из самых популярных фреймворков PHP MVC. Он легкий и требует короткого обучения. Он имеет богатый набор библиотек, которые помогают быстро создавать веб-сайты и приложения. Его также могут использовать пользователи с ограниченными знаниями в области ООП-программирования. CodeК числу приложений, использующих энергию воспламенителя, относятся: |
|
Это иерархическая модель «модель-представление-контроллер» (HMVC), безопасная и легковесная платформа. Она обладает богатым набором компонентов для разработки.ping Приложения применяются быстро. Среди компаний, использующих Kohana, можно назвать следующие: |
|
Он создан по образцу Ruby on Rails. Он известен такими концепциями, как шаблоны проектирования программного обеспечения, соглашение о конфигурации, ActiveRecord и т. д. CakePHP работающие приложения включают в себя; |
|
|
Это мощная структура;
Он включает API от таких поставщиков, как Amazon, Google, FlickrYahoo и т. д. Идеально подходит для разработки.ping Бизнес-приложения. Приложения на базе Zend включают в себя:
Компании, использующие структуру Zend, включают:
|
Перенос приложения для проведения опросов общественного мнения на Codeвоспламенитель
В этом учебникМы создали PHP-приложение для проведения опросов. Здесь мы перенесем этот код на другой язык программирования. Codeвоспламенитель
- Скачать последняя версия CodeЗажигалка от их
- ExtracСкопируйте содержимое заархивированного файла в каталог разработки вашего веб-сервера. В этом уроке мы будем использовать имя папки ciopinionpoll.
- Перейдите по URL-адресу http://localhost/ciopinionpoll/
Теперь мы перенесем наше приложение для проведения опросов общественного мнения на CodeIgniter. Напомним, что наше приложение было разделено на три основных компонента, а именно:
- Фронт-контроллер — это та часть, которая отвечает на запросы URL и возвращает запрошенную страницу. Этот код войдет в контроллер
- Модель — это код, который реагирует на запрошенные данные и возвращает запрошенные данные. Этот код войдет в модель
-
Представления – это код, отвечающий за форматирование и отображение данных. Этот код войдет в представление
- Перейдите в папку ciopinionpoll
- Откройте приложение база данных.php файл, расположенный в каталоге application/config.
- Найдите следующие строки кода
Параметры конфигурации базы данных
- Установите имя пользователя root
- Установите пароль на корневой пароль локального хоста.
- Имя базы данных для Opinion_poll. Обратите внимание, что мы будем использовать базу данных, созданную на предыдущем уроке.
- Сохраните изменения и закройте файл.
Создание нашей модели
Далее мы создадим нашу модель, которая будет расширять CI_Model. CI_Model является частью CodeБиблиотеки Igniter. Модель будет находиться в папке application/models. Opinion_poll_model.php
<?php
class Opinion_poll_model extends CI_Model
{
public function __construct()
{
$this->load->database();
}
public function total_votes()
{
$query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries');
return $query->row()->choices_count;
}
public function get_results()
{
$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");
$table_rows = '';
for ($i = 1; $i < 5; $i++)
{
$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";
$result = $model->
select($sql_stmt); $table_rows .= "<tr><td>" . $ libraries [$i] . " Got:</td><td><b>" . $result[0] . "</b> votes</td></tr>";
}
public function add_vote($choice)
{
$ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data);
}
}
?>
ВОТ,
- «Класс Opinion_poll_model расширяет CI_Model…» — это наша модель, расширяющая CI_Model.
- «…родитель:: __construct();» вызывает конструктор CI_Model
- «$this->load->database();» загружает библиотеку базы данных, чтобы наше приложение могло взаимодействовать с базой данных
- “$this->db->” — это CodeСписок активных пользователей Igniter. Проверьте это. ссылка. для получения дополнительной информации об активной записи.
Создание контроллера. Давайте теперь создадим контроллер. Мы будем использовать контроллер по умолчанию. CodeКонтроллер Igniter находится в файле application/controllers/welcome.php. Замените его исходный код следующим кодом.
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('opinion_poll_model');
}
public function index() {
if ($this->input->post('submitbutton') && !$this->input->post('vote')) {
echo "<script>alert('You did not vote!');</script>";
}
if ($this->input->post('vote')) {
$this->opinion_poll_model->add_vote($this->input->post('vote'));
$data['total_votes'] = $this->opinion_poll_model->total_votes();
$data['rows'] = $this->opinion_poll_model->get_results();
$this->load->view('results', $data);
} else {
$this->load->view('opinion_poll_form');
}
}
}
/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */
?>
ВОТ,
- «if (!define('BASEPATH')) exit('Прямой доступ к скрипту не разрешен');» гарантирует, что пользователи не получат прямого доступа к классу контроллера
- «класс Welcome расширяет CI_Controller…» наш контроллер расширяет класс CI_Controller
- «публичная функция __construct()» вызывает метод конструктора класса CI_Controller и загружает нашу модель Opinion_poll_model
- Функция «public function index()…» соответствует файлу index.php. Она использует CodeКласс ввода Igniter проверяет, был ли отправлен голос, добавляет его в базу данных, а затем отображает результаты. Если массив post в классе ввода пуст, загружается страница голосования.
- “$this->input->post('…')” — это CodeКласс ввода Igniter, который извлекает содержимое глобальной переменной $_POST.
- «$this->opinion_poll_model->add_vote($this->input->post('vote'))» вызывает метод модели add_vote для добавления голосования в базу данных.
Создание наших представлений
Напомним, из предыдущего примера у нас было две HTML-страницы: одна для голосования, а другая для результатов. Для создания представлений мы будем использовать тот же HTML-код с минимальными изменениями. Создайте следующие файлы в каталоге application/views.
opinion_poll_form.php
<html>
<head>
<title>
JavaScript Libraries - Opinion Poll
</title>
</head>
<body>
<h2>JavaScript Libraries - Opinion Poll</h2>
<p><b>What is your favorite JavaScript Library?</b></p>
<form method="POST" action="index.php">
<p>
<input type="radio" name="vote" value="1" /> JQuery
<br />
<input type="radio" name="vote" value="2" /> MooTools
<br />
<input type="radio" name="vote" value="3" /> YUI Library
<br />
<input type="radio" name="vote" value="4" /> Glow </p>
<p>
<input type="submit" name="submitbutton" value="OK" />
</p>
</form>
</body>
</html>
Давайте теперь создадим страницу результатов results.php.
<html>
<head>
<title>JavaScript Libraries - Opinion Poll Results</title>
</head>
<body>
<h2>JavaScript Libraries - Opinion Poll Results</h2>
<p><b>What is your favorite JavaScript Library?</b></p>
<p><b><?php echo $total_votes; ?></b> people have thus far taken part in this poll:</p>
<p><table><tr><td>
<?php print($rows); ?>
</tr></td></table></p>
<p><a href="#">Return to voting page</a></p>
</body>
</html>
Тестирование нашего приложения
Предполагая, что корневой каталог вашего приложения — ciopinion, перейдите в http://localhost/ciopionpoll/
Нажмите кнопку «ОК», вы увидите следующее предупреждающее сообщение.
Проголосуйте за своего любимого кандидата, затем нажмите «ОК». Вы увидите следующую страницу результатов.
Заключение
CodeIgniter — это простой в освоении и использовании PHP MVC-фреймворк, который может значительно сократить время, затрачиваемое на разработку.ping приложений.
CodeIgniter — это простой в освоении и использовании PHP MVC-фреймворк, который может значительно сократить время, затрачиваемое на разработку.ping приложений.
Резюме
- Фреймворк — это набор библиотек, обеспечивающих частичную реализацию общих задач.
- PHP имеет ряд зрелых и протестированных фреймворков MVC с открытым исходным кодом.
- Хороший подход к разработке отделяет данные от представления и поощряет использование единой точки входа в приложение.
- Традиционные PHP-приложения, соответствующие передовым практикам проектирования приложений, можно переносить на платформы MVC с минимальными изменениями.








