Что такое фреймворк PHP MVC?
PHP MVC - это шаблон проектирования приложения, который отделяет данные приложения и бизнес-логику (модель) от представления (представления). MVC означает модель, представление и контроллер.
Контроллер является посредником между моделями и представлениями.
Думайте о шаблоне проектирования MVC как об автомобиле и водителе.
У автомобиля есть лобовые стекла (вид), которые водитель (диспетчер) использует для отслеживания движения впереди, а затем скорости или торможения (модель) в зависимости от того, что он видит впереди.
Зачем использовать PHP MVC Framework?
- PHP MVC Frameworks упрощают работу со сложными технологиями за счет;
- Скрытие всех сложных деталей реализации
- Предоставляем стандартные методы, которые мы можем использовать для создания наших приложений.
- Повышенная продуктивность разработчиков, это связано с тем, что базовая реализация таких действий, как подключение к базе данных, очистка пользовательского ввода и т. Д., Уже частично реализована.
- Соблюдение профессиональных стандартов кодирования
В этом руководстве вы узнаете:
- Шаблон проектирования PHP MVC
- Типы фреймворков PHP MVC
- Перенос приложения для опроса общественного мнения на CodeIgniter
- Параметры конфигурации базы данных
- Создание нашей модели
- Создание наших представлений
- Тестируем наше приложение
Шаблон проектирования PHP MVC
Давайте теперь кратко обсудим каждый компонент шаблона проектирования MVC.
Модель - эта часть связана с бизнес-логикой и данными приложения. Его можно использовать для проверки данных, обработки данных и их хранения. Данные могут поступать из;
- плоский файл
- база данных
- XML-документ
- Другие достоверные источники данных.
Контроллер - это часть, которая обрабатывает запросы пользователей на ресурсы с сервера.
Например, когда пользователи запрашивают URL… /index.php?products=list, контроллер загружает модель продуктов для получения данных о продуктах, а затем выводит результаты в виде списка.
Вкратце, контроллер связывает модели и представления вместе в зависимости от запрашиваемых ресурсов.
Представления - эта часть посвящена представлению данных пользователю. Обычно это HTML-страницы.
Типы фреймворков PHP MVC
Выбор лучшего фреймворка PHP - непростая задача.
Вам не нужно писать свою собственную структуру, чтобы воспользоваться преимуществами MVC.
Вам следует только попытаться создать свой собственный проект приложения, связанный с MVC, чтобы понять, как работают фреймворки MVC.
Когда вы освоитесь с тем, как работают фреймворки MVC, вам следует перейти к зрелым и уже протестированным фреймворкам.
В таблице ниже кратко описаны некоторые из популярных фреймворков PHP и функции, которые предлагает каждый фреймворк.
Рамки | Описание |
---|---|
CodeIgniter https://codeigniter.com/ | Это один из самых популярных фреймворков PHP MVC. Он легкий и требует короткого обучения. Он имеет богатый набор библиотек, которые помогают быстро создавать веб-сайты и приложения. Пользователи с ограниченными знаниями в области программирования ООП также могут использовать его. Приложения, работающие на CodeIgniter, включают:
|
Кохана http://kohanaframework.org | Это безопасный и легкий фреймворк HMVC с контроллером представления иерархической модели. Он имеет богатый набор компонентов для быстрой разработки приложений. Компании, использующие Kohana, включают:
|
CakePHP www.cakephp.org | Он смоделирован по образцу Ruby on rails. Он известен такими концепциями, как шаблоны проектирования программного обеспечения, соглашение по конфигурации, ActiveRecord и т. Д. Приложения на базе CakePHP включают;
|
www.framework.zend.com Zend | Это мощный фреймворк;
|
Перенос приложения для опроса общественного мнения на CodeIgniter
В этом руководстве мы создали приложение для опроса PHP. Здесь мы перенесем этот код в CodeIgniter.
- Загрузите последнюю версию CodeIgniter со своего веб-сайта.
- Извлеките содержимое заархивированного файла в каталог разработки в каталоге веб-сервера. В этом уроке мы будем использовать ciopinionpoll в качестве имени папки.
- Перейдите по URL-адресу http: // localhost / ciopinionpoll /
Теперь мы собираемся портировать наше приложение для опроса общественного мнения на CodeIgniter. Напомним, что наше приложение было разделено на три основных компонента, а именно:
- Фронт-контроллер - это часть, которая отвечает на запросы URL и возвращает запрошенную страницу. Этот код войдет в контроллер
- Модель - это код, который отвечает на запрошенные данные и возвращает запрошенные данные. Этот код войдет в модель
- Представления - это код, отвечающий за форматирование и отображение данных. Этот код войдет в представление
- Перейдите в папку ciopinionpoll
- Откройте файл database.php, расположенный в каталоге application / config.
- Найдите следующие строки кода
Параметры конфигурации базы данных
- Установите имя пользователя как root
- Установите пароль на свой пароль root на локальном хосте
- Имя базы данных для review_poll. Обратите внимание, что мы будем использовать базу данных, созданную на предыдущем уроке.
- Сохраните изменения и закройте файл.
Создание нашей модели
Далее мы собираемся создать нашу модель, которая расширит CI_Model. CI_Model является частью библиотек CodeIgniter. Модель будет расположена в application / modelsview_poll_model.php
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 .= "";}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);}}?> " . $ libraries [$i] . " Got: " . $result[0] . " votes
ЗДЕСЬ,
- «Class Opinion_poll_model расширяет CI_Model…» - это наша модель, которая расширяет CI_Model.
- «… Parent :: __construct ();» вызывает конструктор CI_Model
- «$ This-> load-> database ();» загружает библиотеку базы данных, чтобы наше приложение могло взаимодействовать с базой данных
- «$ This-> db->» - активная запись CodeIgniter. Перейдите по этой ссылке для получения дополнительной информации об активной записи.
Создание нашего контроллера Давайте теперь создадим контроллер. Мы будем использовать контроллер CodeIgniter по умолчанию, расположенный в application / controllers / welcome.php. Замените его исходные коды следующим кодом.
load->model('opinion_poll_model');}public function index() {if ($this->input->post('submitbutton') && !$this->input->post('vote')) {echo "";}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 (! Defined ('BASEPATH')) exit ('Прямой доступ к сценариям не разрешен');» гарантирует, что пользователи не имеют прямого доступа к классу контроллера
- «Класс Добро пожаловать расширяет CI_Controller…» наш контроллер расширяет класс CI_Controller
- «Публичная функция __construct ()» вызывает метод конструктора класса CI_Controller и загружает нашу модель Opinion_poll_model.
- «Public function index ()…» - это функция, которая сопоставляется с index.php. он использует класс ввода CodeIgniter, чтобы проверить, было ли отправлено голосование, добавить его в базу данных, а затем отобразить результаты. Если массив сообщений входного класса пуст, он загружает страницу голосования.
- «$ This-> input-> post ('…')» - это входной класс CodeIgniter, который получает содержимое глобальной переменной $ _POST.
- «$ This- >view_poll_model-> add_vote ($ this-> input-> post ('vote'))» вызывает метод add_vote модели для добавления голоса в базу данных.
Создание наших представлений
Вспомните из предыдущего примера, что у нас было две HTML-страницы, одна для голосования, а другая для результатов. Мы будем использовать тот же HTML-код с минимальными изменениями для создания наших представлений. Создайте следующие файлы в каталоге application / views
opinion_poll_form.phpJavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript Library?
Теперь создадим страницу результатов results.php
JavaScript Libraries - Opinion Poll Results JavaScript Libraries - Opinion Poll Results
What is your favorite JavaScript Library?
people have thus far taken part in this poll:
Тестируем наше приложение
Предполагая, что корневой каталог вашего приложения - ciopinion, перейдите по адресу http: // localhost / ciopionpoll /
Нажмите кнопку ОК, вы увидите следующее предупреждающее сообщение.
Проголосуйте за своего любимого кандидата и нажмите ОК. Вы увидите следующую страницу результатов.
Вывод
CodeIgniter - это простой в освоении и использовании фреймворк PHP MVC, который может значительно сократить время, затрачиваемое на разработку приложений.
Резюме
- Фреймворк - это набор библиотек, которые обеспечивают частичную реализацию общих задач.
- PHP имеет ряд зрелых и протестированных MVC-фреймворков с открытым исходным кодом.
- Хороший подход к разработке отделяет данные от презентации и поощряет использование единой точки входа в приложение.
- Традиционные приложения PHP, которые следуют передовым методам проектирования приложений, могут быть перенесены на платформы MVC с минимальными изменениями.