CodeIgniter MVC (Model View Controller) Framework з прикладом

Зміст:

Anonim

Що таке MVC?

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

1. Модель стосується бізнес-логіки та взаємодії баз даних

2. Контролер координує дії між моделлю та видом

3. Погляд відповідає за подання даних

Нижче наведено деякі переваги архітектурного малюнка 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') АБО вихід ('Прямий доступ до сценарію не дозволений'); перешкоджає прямому доступу до контролера, якщо запит не надходив через index.php. це для цілей безпеки.
  • клас Welcome розширює CI_Controller {…} визначає клас контролера Welcome і розширює батьківський клас CI_Controller
  • 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-> model ('customers_model'); завантажує модель клієнтів.
  • $ data ['customer'] = $ 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 у програмі / моделях

Додайте наступний код


ТУТ,

  • клас Customers_model розширює 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: // localhost: 3000 /

Ви повинні бачити картку клієнта, як показано на малюнку нижче

Резюме

  • MVC - це архітектурний шаблон, який розділяє додаток на три основні компоненти
  • Модель відповідає за взаємодію з джерелами даних
  • Контролер прослуховує вхідні запити користувачів на ресурси
  • У веб-додатках представлення часто містять HTML, CSS та, за бажанням, JavaScript
  • Контролер отримує запит від користувача, за необхідності взаємодіє з моделлю бази даних, а потім повертає результат назад у браузер у вигляді HTML-коду