Hva er MVC?
MVC-standarder for Model-View-Control. Det er et arkitektonisk mønster som deler applikasjonen i tre hovedkomponenter.
1. Modellen omhandler forretningslogikk og databaseinteraksjoner
2. Kontrolleren koordinerer aktivitetene mellom modellen og utsikten
3. View er ansvarlig for presentasjonen av data
Følgende er noen av fordelene med MVC arkitektonisk mønster
- Løs kobling - komponentene eksisterer og fungerer uavhengig av hverandre.
- Fleksibilitet - man kan enkelt gjøre endringer i individuelle komponenter
- Økt produktivitet - mer enn én person kan jobbe med prosjektet samtidig. Front-end-utviklerne kan jobbe med visninger og presentasjon mens backend-utviklere kan fokusere på modeller, og siden systemet er løst koblet, fungerer det på slutten av dagen
I denne opplæringen lærer du:
- Hva er MVC?
- Modell
- Kontroller
- Utsikt
- Hvordan fungerer MVC-rammer?
- CodeIgniter Controller
- CodeIgniter Model
Modell
Modellen er ansvarlig for samhandling med datakilder. Dette er vanligvis en database, men det kan også være en tjeneste som leverer de etterspurte dataene. Det er også vanlig å ha forretningslogikken i modellene i motsetning til kontrolleren. Denne praksisen kalles vanligvis fettmodell mager kontroller.
Modellen skriver vanligvis data i databasen, gir en mekanisme for redigering og oppdatering, og sletting av data. I et moderne webapplikasjon bruker modeller datatilgangsmønstre som aktiv registrering for å gjøre samhandling med databasen enklere.
For eksempel bruker CodeIgniter et innebygd Active Record-bibliotek for å hjelpe modellene mens andre rammer som Laravel bruker Eloquent Object Relational Mapper (ORM) som hjelper datatilgang.
Kontroller
Kontrolleren lytter etter innkommende forespørsler om ressurser fra brukerne. Det fungerer som mellomleddet mellom modellen og visningen og implementerer til tider også noen forretningsregler. La oss si at kontrolleren mottar en forespørsel om å registrere en bruker i databasen.
Den behandlingsansvarlige kan utføre datavalidering av det som er sendt inn for å sikre at alle nødvendige parametere er sendt inn. Hvis noe mangler, blir brukeren omdirigert til registreringssiden med riktig feilmelding vist. Kontrolleren kan også be modellen om å utføre mer validering ved å sjekke om den innsendte e-postadressen allerede eksisterer. Hvis alle valideringsregler passerer, sender kontrolleren dataene til modellen for prosess og venter på svaret.
Når modellen har behandlet informasjonen og returnert et positivt svar, laster kontrolleren inn riktig visning og sender inn dataene som returneres fra modellen som en parameter.
Utsikt
Visningen tar for seg data presentert for sluttbrukeren. I webapplikasjoner inneholder visninger ofte HTML, CSS og eventuelt JavaScript. Visninger inneholder minimum programmeringskode. Koden i visningene brukes vanligvis til å gå gjennom samlinger av data som mottas som parametere fra modellen eller hjelperfunksjonen for å rydde opp i data eller opprette lenker for å redigere postene. De fleste moderne webapplikasjoner bruker vanligvis malmotorer som definerer sin egen syntaks, som er mer som pseudokode og lett kan forstås av designere. Når du arbeider med CodeIgniter, er det vanlig å bruke korte PHP-koder og kontrollstrukturer. For å vise noe i CodeIgniter, kan man bruke følgende kode
I motsetning til
Kontrollstrukturer skrives vanligvis som følger
Som du kan se fra eksemplet ovenfor, vil visningen bruke en kombinasjon av PHP og HTML i stedet for å omslutte alt i ren PHP-kode.
Hvordan fungerer MVC-rammer?
Følgende bilde viser MVC-rammeverket
En kontroller mottar forespørselen fra brukeren, samhandler med databasemodellen om nødvendig, og returnerer resultatet tilbake til nettleseren i form av HTML-kode som nettleseren tolket til et lesbart format og vises for brukeren.
CodeIgniter Controller
La oss nå se hva som nettopp skjedde da vi lastet inn URL-en ovenfor i nettleseren.
Åpne filen Welcome.php controller lokalisert applikasjon / kontrollere
Du bør kunne se følgende kode
load->view('welcome_message');}}
HER,
- definert ('BASEPATH') ELLER avslutte ('Ingen direkte skripttilgang tillatt'); forhindrer direkte tilgang til kontrolleren hvis forespørselen ikke kom gjennom index.php. dette er av sikkerhetshensyn.
- klasse Velkomst utvider CI_Controller {…} definerer velkomstkontrollerklassen og utvider overordnet klasse CI_Controller
- public function index () {…} definerer indeksmetoden som svarer på URL http: // localhost: 3000
- $ this-> load-> view ('welcome_message'); laster inn visningen velkomstmelding som ligger i applikasjonen / visningskatalogen
Vi vil nå oppdatere indeksemetoden som følger
public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}
HER,
- $ dette-> last-> modell ('kundemodell'); laster kundemodellen.
- $ data ['customer'] = $ this-> customers_model-> get_customer (3); kaller get_customer-metoden for clients_model og sender inn parameteren 3. I dette eksemplet har vi hardkodet verdien, men i virkelige applikasjoner vil dette være en parameter fra URI.
- $ this-> load-> view ('welcome_message', $ data); laster velkomstvisningsvisningen og sender $ data-variabelen til visningen
CodeIgniter Model
La oss nå lage visningen vi refererte til i ovennevnte kode. For enkelhets skyld vil modellen vår ikke samhandle med databasen, men returnere en statisk kundepost. Vi vil jobbe med databaser i de neste opplæringene.
Opprett en fil Customers_model.php i applikasjon / modeller
Legg til følgende kode
HER,
- klasse Customers_model utvider CI_Model {...} definerer modellen Customers_model som utvider CI_Model.
- public function get_customer ($ id) {...} definerer metoden get customer basert på en kunde-id
- $ data […] definerer de statiske verdiene til vår fiktive kunde. Dette skal være en rad returnert fra databasen.
- returnere $ data; returnerer kundedataene.
Det vil si det for vår modell. La oss nå endre velkomstmeldingsvisningen
Åpne welcome_message.php i
application/views/welcome_message.php
Bytt ut koden med følgende
CodeIgniter MVC Basics Customer Details Card
Customer ID :
First Name :
Last Name :
Address :
Lagre endringene
Last inn følgende URL i nettleseren
http: // localhost: 3000 /
Du bør kunne se kundekortet som vist på bildet nedenfor
Sammendrag
- MVC er et arkitektonisk mønster som deler applikasjonen i tre hovedkomponenter
- Modellen er ansvarlig for samhandling med datakilder
- Kontrolleren lytter etter innkommende forespørsler om ressurser fra brukerne
- I webapplikasjoner inneholder visninger ofte HTML, CSS og eventuelt JavaScript
- En kontroller mottar forespørselen fra brukeren, samhandler med databasemodellen om nødvendig og returnerer resultatet tilbake til nettleseren i form av HTML-kode