Č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