Kas ir MVC?
MVC standarti Model-View-Control. Tas ir arhitektūras modelis, kas sadala lietojumu trīs galvenajos komponentos.
1. Modelis nodarbojas ar biznesa loģiku un datu bāzu mijiedarbību
2. Kontrolieris koordinē darbības starp modeli un skatu
3. View ir atbildīgs par datu prezentāciju
Tālāk ir norādītas dažas MVC arhitektūras modeļa priekšrocības
- Brīvs savienojums - komponenti pastāv un darbojas neatkarīgi viens no otra.
- Elastība - var viegli veikt izmaiņas atsevišķos komponentos
- Paaugstināta produktivitāte - vienlaikus pie projekta var strādāt vairāk nekā viena persona. Front-end izstrādātāji var strādāt ar skatiem un prezentāciju, savukārt aizmugures izstrādātāji var koncentrēties uz modeļiem, un tā kā sistēma ir brīvi savienota, tā darbojas dienas beigās
Šajā apmācībā jūs uzzināsiet:
- Kas ir MVC?
- Modelis
- Kontrolieris
- Skats
- Kā darbojas MVC ietvari?
- CodeIgniter kontrolieris
- CodeIgniter modelis
Modelis
Modelis ir atbildīgs par mijiedarbību ar datu avotiem. Parasti tā ir datu bāze, bet tas var būt arī pakalpojums, kas nodrošina pieprasītos datus. Ir arī izplatīta prakse, ka biznesa loģika modeļos ir atšķirībā no kontroliera. Šo praksi parasti sauc par tauku modeļa izdilis kontrolieri.
Modelis parasti ieraksta datus datu bāzē, nodrošina datu rediģēšanas, atjaunināšanas un dzēšanas mehānismu. Mūsdienu tīmekļa lietojumprogrammā modeļi izmanto datu piekļuves noformējuma modeļus, piemēram, aktīvo ierakstu, lai atvieglotu mijiedarbību ar datu bāzi.
Piemēram, CodeIgniter izmanto iebūvētu bibliotēkas Active Record, lai palīdzētu modeļiem, savukārt citi ietvari, piemēram, Laravel, izmanto Eloquent Object Relational Mapper (ORM), kas palīdz piekļūt datiem.
Kontrolieris
Kontrolieris klausās ienākošos resursu pieprasījumus no lietotājiem. Tas darbojas kā starpprodukts starp modeli un skatu un reizēm ievieš arī dažus uzņēmējdarbības noteikumus. Pieņemsim, ka kontrolieris saņem pieprasījumu reģistrēt lietotāju datu bāzē.
Pārzinis var veikt datu validāciju iesniegtajam, lai nodrošinātu visu nepieciešamo parametru iesniegšanu. Ja kaut kā trūkst, lietotājs tiek novirzīts uz reģistrācijas lapu, parādot atbilstošu kļūdas ziņojumu. Pārzinis var arī lūgt modeli veikt lielāku validāciju, pārbaudot, vai iesniegtā e-pasta adrese jau pastāv. Ja visi apstiprināšanas noteikumi iztur, tad kontrolieris iesniedz datus procesam un gaida atbildi.
Kad modelis ir apstrādājis informāciju un saņēmis pozitīvu atbildi, kontrolieris ielādē atbilstošo skatu un kā parametru nodod datus, kas atgriezti no modeļa.
Skats
Skats attiecas uz galalietotājam iesniegtajiem datiem. Tīmekļa lietojumprogrammās skati bieži satur HTML, CSS un pēc izvēles arī JavaScript. Skatos ir minimālais programmēšanas kods. Skatos ietverto kodu parasti izmanto, lai veiktu datu savākšanu, kas saņemti kā parametri no modeļa vai palīga funkcijas, lai attīrītu datus vai izveidotu saites ierakstu rediģēšanai. Lielākā daļa mūsdienu tīmekļa lietojumprogrammu parasti izmanto veidņu dzinējus, kas nosaka savu sintaksi, kas vairāk līdzinās pseidokodam un kuru dizaineri var viegli saprast. Strādājot ar CodeIgniter, ir ierasta prakse izmantot īsus PHP tagus un vadības struktūras. Lai kaut ko parādītu CodeIgniter, iespējams, izmantosiet šo kodu
Pretstatā
Kontroles struktūras parasti raksta šādi
Kā redzat no iepriekš minētā piemēra, skatā tiks izmantota PHP un HTML kombinācija, nevis viss tiks ieslēgts tīrā PHP kodā.
Kā darbojas MVC ietvari?
Šajā attēlā parādīti MVC ietvara darbi
Kontrolieris saņem pieprasījumu no lietotāja, mijiedarbojas ar datu bāzes modeli, ja nepieciešams, pēc tam atgriež rezultātu atpakaļ pārlūkprogrammai HTML koda formā, kuru pārlūks interpretē cilvēkiem lasāmā formātā un parāda lietotājam.
CodeIgniter kontrolieris
Tagad sadalīsim to, kas tikko notika, kad tīmekļa pārlūkprogrammā ielādējām iepriekš minēto URL.
Atveriet failu Welcome.php kontrolieris, kas atrodas lietojumprogrammā / kontrolieros
Jums vajadzētu redzēt šo kodu
load->view('welcome_message');}}
ŠEIT,
- define ('BASEPATH') OR iziet ('Nav atļauta tieša skripta piekļuve'); novērš tiešu piekļuvi kontrolierim, ja pieprasījums nenāca caur index.php. tas ir drošības nolūkos.
- klase Welcome paplašina CI_Controller {…} definē Welcome kontrollera klasi un paplašina vecāku klasi CI_Controller
- publisko funkciju indekss () {…} definē indeksa metodi, kas reaģē uz URL http: // localhost: 3000
- $ this-> ielādēt-> skats ('welcome_message'); ielādē skatu welcome_message, kas atrodas lietojumprogrammu / skatu direktorijā
Tagad mēs atjaunināsim indeksa metodi šādi
public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}
ŠEIT,
- $ this-> slodze-> modelis ('customers_model'); ielādē klientu modeli.
- $ data ['customer'] = $ this-> customers_model-> get_customer (3); izsauc metodi get_customer klienta_modelis un iziet parametrā 3. Šajā piemērā mēs esam grūti kodējuši vērtību, bet reālās dzīves lietojumprogrammās tas būtu parametrs no URI.
- $ this-> load-> view ('welcome_message', $ data); ielādē skatu welcome_message un pārsūta skatam mainīgo $ data
CodeIgniter modelis
Tagad izveidosim skatu, uz kuru atsaucāmies iepriekš minētajā kodā. Vienkāršības labad mūsu modelis nedarbosies ar datu bāzi, bet atgriezīs statisku klienta ierakstu. Nākamajās apmācībās mēs strādāsim ar datu bāzēm.
Lietojumprogrammā / modeļos izveidojiet failu Customers_model.php
Pievienojiet šādu kodu
ŠEIT,
- klase Customers_model paplašina CI_Model {…} nosaka modeli Customers_model, kas paplašina CI_Model.
- publiskā funkcija get_customer ($ id) {…} nosaka iegūt klientu metodi, pamatojoties uz klienta ID
- $ data […] nosaka mūsu faktiskā klienta statiskās vērtības. Tai jābūt rindai, kas atgriezta no datu bāzes.
- atgriezt $ datus; atgriež klienta datus.
Tas ir, mūsu modelim. Tagad mainīsim skatu welcome_message
Atveriet welcome_message.php, kas atrodas
application/views/welcome_message.php
Nomainiet kodu ar šādu
CodeIgniter MVC Basics Customer Details Card
Customer ID :
First Name :
Last Name :
Address :
Saglabājiet izmaiņas
Ielādējiet šo URL tīmekļa pārlūkprogrammā
http: // localhost: 3000 /
Jums vajadzētu redzēt klienta karti, kā parādīts attēlā zemāk
Kopsavilkums
- MVC ir arhitektūras modelis, kas sadala lietojumprogrammu trīs galvenajos komponentos
- Modelis ir atbildīgs par mijiedarbību ar datu avotiem
- Kontrolieris klausās ienākošos resursu pieprasījumus no lietotājiem
- Tīmekļa lietojumprogrammās skatos bieži ir HTML, CSS un pēc izvēles JavaScript
- Kontrolieris saņem pieprasījumu no lietotāja, mijiedarbojas ar datu bāzes modeli, ja nepieciešams, pēc tam atgriež rezultātu atpakaļ pārlūkprogrammai HTML koda veidā