Учебное пособие по 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 и функции, которые предлагает каждый фреймворк.

Рамки Описание

Codeвоспламенитель


Codeвоспламенитель


https://codeigniter.com/

Это один из самых популярных фреймворков PHP MVC. Он легкий и требует короткого обучения. Он имеет богатый набор библиотек, которые помогают быстро создавать веб-сайты и приложения. Его также могут использовать пользователи с ограниченными знаниями в области ООП-программирования. CodeК числу приложений, использующих энергию воспламенителя, относятся:


Кохана


Кохана


http://kohanaframework.org

Это иерархическая модель «модель-представление-контроллер» (HMVC), безопасная и легковесная платформа. Она обладает богатым набором компонентов для разработки.ping Приложения применяются быстро. Среди компаний, использующих Kohana, можно назвать следующие:


CakePHP


CakePHP


www.cakephp.org

Он создан по образцу Ruby on Rails. Он известен такими концепциями, как шаблоны проектирования программного обеспечения, соглашение о конфигурации, ActiveRecord и т. д. CakePHP работающие приложения включают в себя;


Zend

www.framework.zend.com


Zend

Это мощная структура;

  • Безопасный, надежный, быстрый и масштабируемый
  • Поддерживает Web 2.0 и создание веб-сервисов.

Он включает API от таких поставщиков, как Amazon, Google, FlickrYahoo и т. д. Идеально подходит для разработки.ping Бизнес-приложения. Приложения на базе Zend включают в себя:

  • Пимкор CMS,
  • ДотКернел.

Компании, использующие структуру Zend, включают:

  • BBC
  • Cisco
  • Вебекс
  • Offers.com

Перенос приложения для проведения опросов общественного мнения на Codeвоспламенитель

В этом учебникМы создали PHP-приложение для проведения опросов. Здесь мы перенесем этот код на другой язык программирования. Codeвоспламенитель

  • Скачать последняя версия CodeЗажигалка от их
  • ExtracСкопируйте содержимое заархивированного файла в каталог разработки вашего веб-сервера. В этом уроке мы будем использовать имя папки ciopinionpoll.
  • Перейдите по URL-адресу http://localhost/ciopinionpoll/

Перенос приложения для проведения опросов общественного мнения на Codeвоспламенитель

Теперь мы перенесем наше приложение для проведения опросов общественного мнения на 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/

Тестирование фреймворка PHP MVC

Нажмите кнопку «ОК», вы увидите следующее предупреждающее сообщение.

Тестирование фреймворка PHP MVC

Проголосуйте за своего любимого кандидата, затем нажмите «ОК». Вы увидите следующую страницу результатов.

Тестирование фреймворка PHP MVC

Заключение

CodeIgniter — это простой в освоении и использовании PHP MVC-фреймворк, который может значительно сократить время, затрачиваемое на разработку.ping приложений.
CodeIgniter — это простой в освоении и использовании PHP MVC-фреймворк, который может значительно сократить время, затрачиваемое на разработку.ping приложений.

Резюме

  • Фреймворк — это набор библиотек, обеспечивающих частичную реализацию общих задач.
  • PHP имеет ряд зрелых и протестированных фреймворков MVC с открытым исходным кодом.
  • Хороший подход к разработке отделяет данные от представления и поощряет использование единой точки входа в приложение.
  • Традиционные PHP-приложения, соответствующие передовым практикам проектирования приложений, можно переносить на платформы MVC с минимальными изменениями.

Подведем итог этой публикации следующим образом: