Mis on MVC?
MVC standardid Model-View-Control jaoks. See on arhitektuuriline muster, mis jagab rakenduse kolmeks põhikomponendiks.
1. Mudel käsitleb äriloogikat ja andmebaaside interaktsioone
2. Kontroller koordineerib mudeli ja vaate vahelisi tegevusi
3. Vaade vastutab andmete esitamise eest
Järgnevalt on toodud mõned MVC arhitektuurse mustri eelised
- Lahtine ühendus - komponendid eksisteerivad ja toimivad üksteisest sõltumatult.
- Paindlikkus - üksikuid komponente saab hõlpsalt muuta
- Suurenenud tootlikkus - korraga saab projekti kallal töötada rohkem kui üks inimene. Esiosa arendajad saavad töötada vaadete ja esitluste kallal, taustaprogrammide arendajad saavad aga keskenduda mudelitele ja kuna süsteem on lõdvalt ühendatud, töötab see päeva lõpus
Selles õpetuses saate teada:
- Mis on MVC?
- Mudel
- Kontroller
- Vaade
- Kuidas MVC raamistikud töötavad?
- CodeIgniteri kontroller
- CodeIgniteri mudel
Mudel
Mudel vastutab andmeallikatega suhtlemise eest. Tavaliselt on see andmebaas, kuid see võib olla ka teenus, mis pakub soovitud andmeid. Samuti on tavaline tava, et äriloogika sisaldub mudelites erinevalt kontrollerist. Seda tava nimetatakse tavaliselt rasva mudeli kõhnaks kontrolleriks.
Mudel kirjutab andmed tavaliselt andmebaasi, pakub andmete redigeerimise, värskendamise ja kustutamise mehhanismi. Kaasaegses veebirakenduses kasutavad mudelid andmebaasiga suhtlemise hõlbustamiseks andmetele juurdepääsu kujundusmustreid, näiteks aktiivset kirjet.
Näiteks kasutab CodeIgniter mudelite abistamiseks sisseehitatud teeki Active Record, samas kui muud raamistikud, näiteks Laravel, kasutavad andmetele juurdepääsu hõlbustavat Eloquent Object Relational Mapperit (ORM).
Kontroller
Kontroller kuulab kasutajate sissetulevaid ressursitaotlusi. See toimib vahendina mudeli ja vaate vahel ning rakendab mõnikord ka mõnda ärireeglit. Oletame, et kontroller saab taotluse kasutaja andmebaasi registreerimiseks.
Vastutav töötleja võib edastatud andmete valideerida, et tagada kõigi nõutavate parameetrite esitamine. Kui midagi on puudu, suunatakse kasutaja registreerimislehele ja kuvatakse vastav tõrketeade. Vastutav töötleja võib nõuda ka mudeli täiendavat valideerimist, kontrollides, kas esitatud e-posti aadress on juba olemas. Kui kõik valideerimisreeglid läbivad, esitab kontroller andmed mudeli töötlemiseks ja ootab vastust.
Kui mudel on teabe töödelnud ja positiivse vastuse andnud, laadib kontroller sobiva vaate ja sisestab parameetrina mudeli tagastatud andmed.
Vaade
Vaade käsitleb lõppkasutajale esitatud andmeid. Veebirakendustes sisaldavad vaated sageli HTML-i, CSS-i ja valikuliselt JavaScripti. Vaated sisaldavad minimaalset programmeerimiskoodi. Vaadetes sisalduvat koodi kasutatakse tavaliselt mudeli või abifunktsiooni parameetritena saadud andmete kogumite sirvimiseks andmete puhastamiseks või linkide loomiseks kirjete redigeerimiseks. Enamik tänapäevaseid veebirakendusi kasutab tavaliselt mallimootoreid, mis määratlevad oma süntaksit, mis sarnaneb pigem pseudokoodiga ja on disaineritele hõlpsasti mõistetav. CodeIgniteriga töötamisel on levinud tava kasutada lühikesi PHP-silte ja juhtimisstruktuure. Midagi kuvamiseks CodeIgniteris võib kasutada järgmist koodi
Erinevalt
Juhtimisstruktuurid kirjutatakse tavaliselt järgmiselt
Nagu ülaltoodud näitest näha, kasutab vaade PHP ja HTML kombinatsiooni selle asemel, et kõik ümbritseda puhta PHP-koodiga.
Kuidas MVC raamistikud töötavad?
Järgmisel pildil on näidatud MVC raamistiku tööd
Kontroller võtab kasutajalt päringu vastu, suhtleb vajadusel andmebaasimudeliga ja tagastab tulemuse seejärel brauserisse HTML-koodi kujul, mille brauser tõlgendab inimesele loetavas vormingus ja kuvatakse kasutajale.
CodeIgniteri kontroller
Jaotame nüüd, mis just juhtus, kui laadisime ülaltoodud URL-i veebibrauserisse.
Avage fail Welcome.php kontroller asub rakendus / kontrollerid
Peaksite nägema järgmist koodi
load->view('welcome_message');}}
SIIN,
- define ('BASEPATH') VÕI exit ('Skripti otsene juurdepääs pole lubatud'); takistab otsest juurdepääsu kontrollerile, kui taotlus ei tulnud läbi index.php. see on turvalisuse eesmärgil.
- klassi Welcome laiendab CI_Controller {…} määratleb tervituskontrolleri klassi ja laiendab vanemklassi CI_Controller
- avaliku funktsiooni register () {…} määratleb URL-ile http: // localhost: 3000 reageeriva indeksimeetodi
- $ this-> load-> view ('teretulnud_sõnum'); laadib vaate welcome_message, mis asub rakenduste / vaadete kataloogis
Nüüd värskendame indeksi meetodit järgmiselt
public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}
SIIN,
- $ see-> laadige-> mudel ('klientide_mudel'); laadib klientide mudeli.
- $ data ['customer'] = $ this-> customers_model-> get_customer (3); kutsub meetodit get_customer klientide_mudel ja edastab parameetri 3. Selles näites oleme väärtuse kõvasti kodeerinud, kuid reaalsetes rakendustes oleks see URI parameeter.
- $ this-> load-> vaade ('welcome_message', $ data); laadib vaate welcome_message ja edastab vaates andmemuutuja $
CodeIgniteri mudel
Loome nüüd vaate, millele ülaltoodud koodis viidasime. Lihtsuse mõttes ei suhtle meie mudel andmebaasiga, vaid tagastab staatilise kliendikirje. Järgmistes õpetustes töötame andmebaasidega.
Looge rakenduses / mudelites fail Customers_model.php
Lisage järgmine kood
SIIN,
- klass Customers_model extends CI_Model {…} määratleb mudeli Customers_model, mis laiendab CI_Model.
- avalik funktsioon get_customer ($ id) {…} määratleb kliendi ID põhjal kliendi hankimise meetodi
- $ data […] määratleb meie tegeliku kliendi staatilised väärtused. See peaks olema andmebaasist tagastatud rida.
- tagastage $ andmed; tagastab kliendiandmed.
See tähendab, et see sobib meie mudeli jaoks. Muudame nüüd vaate welcome_message
Ava aadressil welcome_message.php
application/views/welcome_message.php
Asendage kood järgmisega
CodeIgniter MVC Basics Customer Details Card
Customer ID :
First Name :
Last Name :
Address :
Salvestage muudatused
Laadige järgmine URL veebibrauserisse
http: // localhost: 3000 /
Peaksite nägema kliendikaarti, nagu on näidatud alloleval pildil
Kokkuvõte
- MVC on arhitektuuriline muster, mis jagab rakenduse kolmeks põhikomponendiks
- Mudel vastutab andmeallikatega suhtlemise eest
- Kontroller kuulab kasutajate sissetulevaid ressursitaotlusi
- Veebirakendustes sisaldavad vaated sageli HTML-i, CSS-i ja valikuliselt JavaScripti
- Kontroller võtab kasutajalt päringu vastu, suhtleb vajadusel andmebaasimudeliga ja tagastab tulemuse seejärel HTML-koodi kujul brauserisse