Rámec CodeIgniter MVC (Model View Controller) s príkladom

Obsah:

Anonim

Čo je to MVC?

Štandardy MVC pre Model-View-Control. Jedná sa o architektonický vzor, ​​ktorý rozdeľuje aplikáciu na tri hlavné komponenty.

1. Model sa zaoberá obchodnou logikou a databázovými interakciami

2. Kontrolór koordinuje činnosti medzi modelom a pohľadom

3. View je zodpovedný za prezentáciu údajov

Nasleduje niekoľko výhod architektonického vzoru MVC

  • Voľná ​​spojka - komponenty existujú a fungujú nezávisle na sebe.
  • Flexibilita - jednotlivé komponenty je možné ľahko meniť
  • Zvýšená produktivita - na projekte môže pracovať súčasne viac osôb. Frontendoví vývojári môžu pracovať na zobrazeniach a prezentácii, zatiaľ čo backendoví vývojári sa môžu sústrediť na modely a keďže je systém voľne spojený, funguje na konci dňa

V tomto návode sa dozviete:

  • Čo je to MVC?
    • Model
    • Kontrolór
    • vyhliadka
  • Ako fungujú rámce MVC?
  • Ovládač CodeIgniter
  • Model CodeIgniter

Model

Model je zodpovedný za interakciu so zdrojmi údajov. Spravidla ide o databázu, ale môže to byť aj služba, ktorá poskytuje požadované údaje. Je tiež bežnou praxou, že obchodná logika je obsiahnutá v modeloch na rozdiel od kontrolóra. Táto prax sa zvyčajne nazýva tlstý model vychudnutého regulátora.

Model zvyčajne zapisuje údaje do databázy, poskytuje mechanizmus na úpravy a aktualizáciu a mazanie údajov. V modernej webovej aplikácii používajú modely na uľahčenie interakcie s databázou návrhové vzory prístupu k dátam, napríklad aktívny záznam.

Napríklad CodeIgniter používa zabudovanú knižnicu Active Record na pomoc modelom, zatiaľ čo iné rámce ako Laravel používajú Eloquent Object Relational Mapper (ORM), ktorý uľahčuje prístup k dátam.

Kontrolór

Kontrolór počúva na prichádzajúce požiadavky na zdroje od používateľov. Funguje ako medzičlánok medzi modelom a pohľadom a občas implementuje aj niektoré obchodné pravidlá. Povedzme, že kontrolór dostane požiadavku na registráciu používateľa v databáze.

Prevádzkovateľ môže vykonať overenie údajov o tom, čo bolo predložené, aby sa zabezpečilo, že boli predložené všetky požadované parametre. Ak niečo chýba, užívateľ je presmerovaný na registračnú stránku a zobrazí sa príslušné chybové hlásenie. Kontrolór môže tiež požiadať model, aby vykonal viac validácie, a to kontrolou, či zadaná e-mailová adresa už existuje. Ak všetky pravidlá overovania vyhovejú, kontrolór odošle údaje modelu na spracovanie a čaká na odpoveď.

Keď model spracuje informácie a vráti pozitívnu odpoveď, regulátor načíta príslušné zobrazenie a odovzdá údaje vrátené z modelu ako parameter.

vyhliadka

Pohľad sa zaoberá údajmi poskytnutými koncovému používateľovi. Vo webových aplikáciách zobrazenia často obsahujú HTML, CSS a voliteľne JavaScript. Zobrazenia obsahujú minimálny programovací kód. Kód obsiahnutý v zobrazeniach sa zvyčajne používa na prechádzanie zbierkami údajov prijatých ako parametre z modelu alebo pomocnej funkcie na čistenie údajov alebo vytváranie odkazov na úpravu záznamov. Najmodernejšia webová aplikácia zvyčajne používa šablónové nástroje, ktoré definujú svoju vlastnú syntax, ktorá sa viac podobá pseudokódu a návrhárom ľahko rozumie. Pri práci s CodeIgniterom je bežnou praxou používať krátke značky PHP a riadiace štruktúry. Ak chcete niečo zobraziť v aplikácii CodeIgniter, môžete použiť nasledujúci kód


Na rozdiel od

Kontrolné štruktúry sú zvyčajne napísané nasledovne


Ako môžete vidieť z vyššie uvedeného príkladu, pohľad bude namiesto kombinácie všetkého do čistého kódu PHP používať kombináciu PHP a HTML.

Ako fungujú rámce MVC?

Nasledujúci obrázok ukazuje, ako funguje MVC framework

Kontrolór dostane požiadavku od používateľa, v prípade potreby interaguje s databázovým modelom a potom vráti výsledok späť do prehľadávača vo forme HTML kódu, ktorý prehľadávač interpretoval do formátu čitateľného pre človeka a zobrazil ho používateľovi.

Ovládač CodeIgniter

Poďme si teraz rozobrať, čo sa stalo, keď sme načítali vyššie uvedenú adresu URL do webového prehliadača.

Otvorte súbor Welcome.php radič umiestnený aplikácie / radiče

Mali by ste byť schopní vidieť nasledujúci kód

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

TU,

  • definované ('BASEPATH') ALEBO výstup ('Nie je povolený priamy prístup k skriptu'); zabraňuje priamemu prístupu k radiču, ak požiadavka neprišla cez index.php. toto je z bezpečnostných dôvodov.
  • trieda Welcome rozširuje CI_Controller {…} definuje triedu kontrolóra Welcome a rozširuje nadradenú triedu CI_Controller
  • public function index () {…} definuje metódu indexu, ktorá reaguje na URL http: // localhost: 3000
    • $ this-> load-> view ('welcome_message'); načíta pohľad welcome_message, ktorý sa nachádza v adresári application / views

Teraz aktualizujeme metódu indexu nasledujúcim spôsobom

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

TU,

  • $ this-> load-> model ('customers_model'); načíta model zákazníkov.
  • $ data ['customer'] = $ this-> customers_model-> get_customer (3); zavolá metódu get_customer of customers_model a odovzdá parameter 3. V tomto príklade máme pevne zakódovanú hodnotu, ale v skutočných aplikáciách by to bol parameter z URI.
  • $ this-> load-> view ('welcome_message', $ data); načíta zobrazenie welcome_message a do zobrazenia odovzdá premennú $ data

Model CodeIgniter

Poďme teraz vytvoriť pohľad, na ktorý sme sa zmienili vo vyššie uvedenom kóde. Pre zjednodušenie nebude náš model interagovať s databázou, ale vráti statický záznam zákazníka. S databázami budeme pracovať v ďalších tutoriáloch.

Vytvorte súbor Customers_model.php v aplikácii / modeloch

Pridajte nasledujúci kód


TU,

  • trieda Customers_model rozširuje CI_Model {…} definuje model Customers_model, ktorý rozširuje CI_Model.
  • public function get_customer ($ id) {…} definuje metódu get customer na základe id zákazníka
  • $ data […] definujú statické hodnoty nášho fiktívneho zákazníka. Malo by ísť o riadok vrátený z databázy.
  • vrátiť $ dáta; vráti údaje o zákazníkovi.

Teda pre náš model. Poďme teraz upraviť pohľad welcome_message

Otvorte súbor welcome_message.php, ktorý sa nachádza v

application/views/welcome_message.php

Nahraďte kód nasledujúcim

CodeIgniter MVC Basics

Customer Details Card

Customer ID :

First Name :

Last Name :

Address :

Uložte zmeny

Vložte nasledujúcu adresu URL do webového prehliadača

http: // localhost: 3000 /

Zákaznícku kartu by ste mali vidieť, ako je znázornené na obrázku nižšie

Zhrnutie

  • MVC je architektonický vzor, ​​ktorý rozdeľuje aplikáciu na tri hlavné komponenty
  • Model je zodpovedný za interakciu so zdrojmi údajov
  • Kontrolór počúva na prichádzajúce požiadavky na zdroje od používateľov
  • Vo webových aplikáciách zobrazenia často obsahujú HTML, CSS a voliteľne JavaScript
  • Kontrolór dostane požiadavku od používateľa, v prípade potreby interaguje s databázovým modelom a potom vráti výsledok späť do prehľadávača vo forme HTML kódu