CodeIgniter MVC (Model View Controller) Framework с примером

Содержание:

Anonim

Что такое MVC?

Стандарты MVC для Model-View-Control. Это архитектурный шаблон, который разделяет приложение на три основных компонента.

1. Модель касается бизнес-логики и взаимодействия с базой данных.

2. Контроллер координирует действия между моделью и видом.

3. View отвечает за представление данных.

Ниже приведены некоторые преимущества архитектурного шаблона MVC.

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

В этом руководстве вы узнаете:

  • Что такое MVC?
    • Модель
    • Контроллер
    • Вид
  • Как работают фреймворки MVC?
  • Контроллер CodeIgniter
  • CodeIgniter Модель

Модель

Модель отвечает за взаимодействие с источниками данных. Обычно это база данных, но это также может быть служба, предоставляющая запрошенные данные. Также распространена практика, когда бизнес-логика содержится в моделях, а не в контроллере. Эту практику обычно называют худым контроллером толстой модели.

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

Например, CodeIgniter использует встроенную библиотеку Active Record для помощи моделям, в то время как другие фреймворки, такие как Laravel, используют Eloquent Object Relational Mapper (ORM), который облегчает доступ к данным.

Контроллер

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

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

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

Вид

Представление имеет дело с данными, представленными конечному пользователю. В веб-приложениях представления часто содержат HTML, CSS и, возможно, JavaScript. Представления содержат минимум программного кода. Код, содержащийся в представлениях, обычно используется для циклического перебора коллекций данных, полученных в качестве параметров от модели или вспомогательной функции, для очистки данных или создания ссылок для редактирования записей. Большинство современных веб-приложений обычно используют механизмы шаблонов, которые определяют свой собственный синтаксис, который больше похож на псевдокод и может быть легко понят дизайнерам. При работе с CodeIgniter обычной практикой является использование коротких тегов PHP и управляющих структур. Чтобы отобразить что-то в CodeIgniter, можно использовать следующий код


В отличие от

Структуры управления обычно записываются следующим образом


Как видно из приведенного выше примера, представление будет использовать комбинацию PHP и HTML вместо того, чтобы заключать все в чистый код PHP.

Как работают фреймворки MVC?

На следующем изображении показано, как работает фреймворк MVC.

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

Контроллер CodeIgniter

Давайте теперь разберемся, что только что произошло, когда мы загрузили указанный выше URL-адрес в веб-браузер.

Откройте файл Welcome.php, расположенный на контроллере приложения / контроллеров.

Вы должны увидеть следующий код

load->view('welcome_message');}}

ЗДЕСЬ,

  • определено ('BASEPATH') OR exit ('Прямой доступ к сценарию не разрешен'); предотвращает прямой доступ к контроллеру, если запрос не пришел через index.php. это сделано в целях безопасности.
  • class Welcome расширяет CI_Controller {…} определяет класс контроллера Welcome и расширяет родительский класс CI_Controller
  • public function index () {…} определяет метод индекса, который отвечает на URL http: // localhost: 3000
    • $ this-> load-> view ('welcome_message'); загружает представление welcome_message, которое находится в каталоге application / views

Теперь мы обновим метод индекса следующим образом

public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}

ЗДЕСЬ,

  • $ this-> load-> модель ('customers_model'); загружает модель клиентов.
  • $ data ['клиент'] = $ this-> customers_model-> get_customer (3); вызывает метод get_customer для customers_model и передает параметр 3. В этом примере мы жестко запрограммировали значение, но в реальных приложениях это будет параметр из URI.
  • $ this-> load-> view ('welcome_message', $ data); загружает представление welcome_message и передает в представление переменную $ data

CodeIgniter Модель

Давайте теперь создадим представление, на которое мы ссылались в приведенном выше коде. Для простоты наша модель не будет взаимодействовать с базой данных, но будет возвращать статическую запись о клиенте. В следующих уроках мы будем работать с базами данных.

Создайте файл Customers_model.php в application / models

Добавьте следующий код


ЗДЕСЬ,

  • class Customers_model extends CI_Model {…} определяет модель Customers_model, которая расширяет CI_Model.
  • публичная функция get_customer ($ id) {…} определяет метод получения клиента на основе идентификатора клиента
  • $ data […] определяет статические значения нашего фиктивного клиента. Это должна быть строка, возвращенная из базы данных.
  • вернуть данные $; возвращает данные клиента.

То есть это для нашей модели. Давайте теперь изменим представление welcome_message

Откройте файл welcome_message.php, расположенный в

application/views/welcome_message.php

Замените код следующим

CodeIgniter MVC Basics

Customer Details Card

Customer ID :

First Name :

Last Name :

Address :

Сохраните изменения

Загрузите следующий URL-адрес в веб-браузере

http: // локальный: 3000 /

Вы должны увидеть карточку клиента, как показано на изображении ниже.

Резюме

  • MVC - это архитектурный шаблон, который разделяет приложение на три основных компонента.
  • Модель отвечает за взаимодействие с источниками данных.
  • Контроллер прослушивает входящие запросы ресурсов от пользователей.
  • В веб-приложениях представления часто содержат HTML, CSS и, возможно, JavaScript.
  • Контроллер получает запрос от пользователя, при необходимости взаимодействует с моделью базы данных, а затем возвращает результат обратно в браузер в виде HTML-кода.