Kaj je MVC?
Standardi MVC za Model-View-Control. Gre za arhitekturni vzorec, ki aplikacijo razdeli na tri glavne komponente.
1. Model se ukvarja s poslovno logiko in interakcijami z bazami podatkov
2. Krmilnik usklajuje dejavnosti med modelom in pogledom
3. Pogled je odgovoren za predstavitev podatkov
Sledi nekaj prednosti arhitekturnega vzorca MVC
- Ohlapna sklopka - sestavni deli obstajajo in delujejo neodvisno drug od drugega.
- Prilagodljivost - posamezne komponente lahko enostavno spremenite
- Povečana produktivnost - na projektu lahko hkrati dela več oseb. Front-end razvijalci lahko delajo na pogledih in predstavitvah, medtem ko se zaledni razvijalci lahko osredotočijo na modele in ker je sistem ohlapno povezan, deluje ob koncu dneva
V tej vadnici boste izvedeli:
- Kaj je MVC?
- Model
- Krmilnik
- Pogled
- Kako delujejo okviri MVC?
- Krmilnik CodeIgniter
- Model CodeIgniter
Model
Model je odgovoren za interakcijo z viri podatkov. Običajno je to baza podatkov, lahko pa je tudi storitev, ki zagotavlja zahtevane podatke. Običajna praksa je tudi, da imajo poslovna logika v modelih vseeno kot krmilnik. To prakso običajno imenujemo debel model suhega krmilnika.
Model običajno zapisuje podatke v bazo podatkov, ponuja mehanizem za urejanje in posodabljanje ter brisanje podatkov. V sodobni spletni aplikaciji modeli uporabljajo vzorce oblikovanja dostopa do podatkov, kot je aktivni zapis, da olajšajo interakcijo z bazo podatkov.
CodeIgniter na primer uporablja vgrajeno knjižnico Active Record za pomoč modelom, medtem ko drugi okviri, kot je Laravel, uporabljajo Eloquent Object Relational Mapper (ORM), ki pomaga pri dostopu do podatkov.
Krmilnik
Krmilnik posluša dohodne zahteve uporabnikov po virih. Deluje kot posrednik med modelom in pogledom ter včasih izvaja tudi nekatera poslovna pravila. Recimo, da krmilnik prejme zahtevo za registracijo uporabnika v zbirko podatkov.
Upravljavec lahko opravi validacijo podatkov o oddanem, da zagotovi, da so bili predloženi vsi zahtevani parametri. Če kaj manjka, je uporabnik preusmerjen na stran za registracijo s prikazanim ustreznim sporočilom o napaki. Upravljavec lahko od modela zahteva tudi več validacije s preverjanjem, ali predloženi e-poštni naslov že obstaja. Če vsa pravila za preverjanje veljavnosti posredujejo, krmilnik podatke pošlje modelu v postopek in počaka na odgovor.
Ko model obdela informacije in vrne pozitiven odgovor, krmilnik naloži ustrezen pogled in kot parameter posreduje podatke, vrnjene iz modela.
Pogled
Pogled obravnava podatke, predstavljene končnemu uporabniku. V spletnih aplikacijah pogledi pogosto vsebujejo HTML, CSS in po želji JavaScript. Pogledi vsebujejo minimalno programsko kodo. Koda v pogledih se običajno uporablja za kroženje zbirk podatkov, prejetih kot parametri iz modela ali pomožne funkcije za čiščenje podatkov ali ustvarjanje povezav za urejanje zapisov. Večina sodobnih spletnih aplikacij običajno uporablja mehanizme za predloge, ki določajo lastno sintakso, ki je bolj podobna psevdokodi in jo oblikovalci zlahka razumejo. Pri delu s CodeIgniter je običajna praksa, da se uporabljajo kratke oznake PHP in nadzorne strukture. Za prikaz nečesa v CodeIgniter lahko uporabimo naslednjo kodo
V nasprotju z
Nadzorne strukture so običajno napisane na naslednji način
Kot lahko vidite iz zgornjega primera, bo pogled uporabil kombinacijo PHP in HTML, namesto da bi vse zaprl v čisto PHP kodo.
Kako delujejo okviri MVC?
Naslednja slika prikazuje ogrodje MVC
Krmilnik prejme zahtevo od uporabnika, po potrebi sodeluje z modelom baze podatkov, nato pa rezultat vrne v brskalnik v obliki kode HTML, ki jo je brskalnik interpretiral v čitljivo obliko in prikazal uporabniku.
Krmilnik CodeIgniter
Zdaj pa razčlenimo, kaj se je pravkar zgodilo, ko smo v spletni brskalnik naložili zgornji URL.
Odprite datoteko Welcome.php krmilnik, ki se nahaja v aplikaciji / krmilnikih
Morali bi videti naslednjo kodo
load->view('welcome_message');}}
TUKAJ,
- definirano ('BASEPATH') ALI izhod ('Ni dovoljen neposreden dostop do skripta'); preprečuje neposreden dostop do krmilnika, če zahteva ni prišla prek index.php. to je zaradi varnosti.
- razred dobrodošlice razširja CI_Controller {…} definira razred krmilnika dobrodošlice in razširja nadrejeni razred CI_Controller
- indeks javne funkcije () {…} definira metodo indeksa, ki se odziva na URL http: // localhost: 3000
- $ this-> load-> view ('welcome_message'); naloži pogled welcome_message, ki se nahaja v imeniku application / views
Zdaj bomo metodo indeksa posodobili, kot sledi
public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}
TUKAJ,
- $ this-> load-> model ('customers_model'); naloži model kupcev.
- $ data ['customer'] = $ this-> customers_model-> get_customer (3); pokliče metodo get_customer customers_model in poda parameter 3. V tem primeru smo težko kodirali vrednost, vendar bi bil v resničnih aplikacijah to parameter iz URI-ja.
- $ this-> load-> view ('welcome_message', $ data); naloži pogled welcome_message in v spremenljivko $ data prenese pogled
Model CodeIgniter
Ustvarimo zdaj pogled, na katerega smo se sklicevali v zgornji kodi. Zaradi enostavnosti naš model ne bo deloval z bazo podatkov, ampak bo vrnil statični zapis stranke. Z bazami podatkov bomo delali v naslednjih vajah.
Ustvari datoteko Customers_model.php v aplikaciji / modelih
Dodajte naslednjo kodo
TUKAJ,
- razred Customers_model extends CI_Model {…} definira model Customers_model, ki razširja CI_Model.
- javna funkcija get_customer ($ id) {…} definira metodo pridobivanja stranke na podlagi id-ja stranke
- $ data […] definira statične vrednosti naše izmišljene stranke. To bi morala biti vrstica, vrnjena iz baze podatkov.
- vrni $ podatke; vrne podatke o stranki.
Se pravi, to je za naš model. Spremenimo zdaj pogled welcome_message
Odprite welcome_message.php, ki se nahaja v
application/views/welcome_message.php
Kodo zamenjajte z naslednjo
CodeIgniter MVC Basics Customer Details Card
Customer ID :
First Name :
Last Name :
Address :
Shranite spremembe
V spletni brskalnik naložite naslednji URL
http: // localhost: 3000 /
Morali bi videti kartico stranke, kot je prikazano na spodnji sliki
Povzetek
- MVC je arhitekturni vzorec, ki aplikacijo deli na tri glavne komponente
- Model je odgovoren za interakcijo z viri podatkov
- Krmilnik posluša dohodne zahteve uporabnikov po virih
- V spletnih aplikacijah pogledi pogosto vsebujejo HTML, CSS in po želji JavaScript
- Krmilnik prejme zahtevo od uporabnika, po potrebi sodeluje z modelom baze podatkov in rezultat vrne v brskalnik v obliki kode HTML