CodeIgniter MVC (Model View Controller) Framework med eksempel

Indholdsfortegnelse:

Anonim

Hvad er MVC?

MVC-standarder for Model-View-Control. Det er et arkitektonisk mønster, der opdeler applikationen i tre hovedkomponenter.

1. Model beskæftiger sig med forretningslogik og databaseinteraktioner

2. Controller koordinerer aktiviteterne mellem modellen og udsigten

3. View er ansvarlig for præsentation af data

Følgende er nogle af fordelene ved MVC arkitektonisk mønster

  • Løs kobling - komponenterne findes og fungerer uafhængigt af hinanden.
  • Fleksibilitet - man kan nemt foretage ændringer i individuelle komponenter
  • Øget produktivitet - mere end én person kan arbejde på projektet på samme tid. Frontend-udviklerne kan arbejde med visninger og præsentation, mens backend-udviklere kan fokusere på modeller, og da systemet er løst koblet, fungerer det i slutningen af ​​dagen

I denne vejledning lærer du:

  • Hvad er MVC?
    • Model
    • Controller
    • Udsigt
  • Hvordan fungerer MVC-rammer?
  • CodeIgniter Controller
  • CodeIgniter Model

Model

Modellen er ansvarlig for interaktion med datakilder. Dette er normalt en database, men det kan også være en tjeneste, der leverer de ønskede data. Det er også en almindelig praksis at have forretningslogikken indeholdt i modellerne i modsætning til controlleren. Denne praksis kaldes normalt fedtmodel tynd controller.

Modellen skriver normalt data i databasen, giver en mekanisme til redigering og opdatering og sletning af data. I en moderne webapplikation bruger modeller dataadgangs designmønstre såsom aktiv registrering for at gøre det lettere at interagere med databasen.

For eksempel bruger CodeIgniter et indbygget Active Record-bibliotek til at hjælpe modellerne, mens andre rammer som Laravel bruger Eloquent Object Relational Mapper (ORM), der hjælper dataadgang.

Controller

Controlleren lytter efter indgående anmodninger om ressourcer fra brugerne. Det fungerer som mellemled mellem modellen og udsigten og implementerer til tider også nogle forretningsregler. Lad os sige, at controlleren modtager en anmodning om at registrere en bruger i databasen.

Den registeransvarlige kan udføre datavalidering af, hvad der er indsendt for at sikre, at alle de krævede parametre er blevet indsendt. Hvis der mangler noget, omdirigeres brugeren til registreringssiden med den relevante fejlmeddelelse vist. Den registeransvarlige kan også anmode modellen om at udføre mere validering ved at kontrollere, om den indsendte e-mail-adresse allerede findes. Hvis alle valideringsregler overgår, sender controlleren dataene til modellen til proces og venter på svaret.

Når modellen har behandlet informationen og returneret et positivt svar, indlæser controlleren den relevante visning og videresender de data, der returneres fra modellen, som en parameter.

Udsigt

Visningen behandler data, der præsenteres for slutbrugeren. I webapplikationer indeholder visninger ofte HTML, CSS og eventuelt JavaScript. Visninger indeholder minimum programmeringskode. Koden indeholdt i visninger bruges normalt til at gennemgå samlinger af data modtaget som parametre fra modellen eller hjælperfunktionen til oprydning af data eller oprettelse af links til redigering af posterne. De fleste moderne webapplikationer bruger normalt skabelonmotorer, der definerer deres egen syntaks, som mere ligner pseudokode og let kan forstås af designere. Når du arbejder med CodeIgniter, er det almindelig praksis at bruge korte PHP-tags og kontrolstrukturer. For at få vist noget i CodeIgniter kan man bruge følgende kode


I modsætning til

Kontrolstrukturer skrives normalt som følger


Som du kan se fra ovenstående eksempel, vil visningen bruge en kombination af PHP og HTML i stedet for at omslutte alt i ren PHP-kode.

Hvordan fungerer MVC-rammer?

Det følgende billede viser, at MVC-rammen fungerer

En controller modtager anmodningen fra brugeren, interagerer med databasemodellen, hvis det er nødvendigt, og returnerer derefter resultatet tilbage til browseren i form af HTML-kode, som browseren fortolkes i et menneskeligt læsbart format og vises for brugeren.

CodeIgniter Controller

Lad os nu opdele, hvad der lige skete, da vi indlæste ovenstående URL i webbrowseren.

Åbn filen Welcome.php controller placeret applikation / controllere

Du skal kunne se følgende kode

load->view('welcome_message');}}

HER,

  • defineret ('BASEPATH') ELLER afslut ('Ingen direkte adgang til script tilladt'); forhindrer direkte adgang til controlleren, hvis anmodningen ikke kom gennem index.php. dette er af sikkerhedsmæssige årsager.
  • klasse Velkomst udvider CI_Controller {…} definerer velkomstcontroller-klassen og udvider den overordnede klasse CI_Controller
  • public function index () {…} definerer den indeksmetode, der svarer til URL'en http: // localhost: 3000
    • $ this-> load-> view ('welcome_message'); indlæser visningen Welcome_message, der findes i applikationen / visningskataloget

Vi opdaterer nu indeksmetoden 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,

  • $ this-> load-> model ('kundemodel'); indlæser kundemodellen.
  • $ data ['customer'] = $ this-> customers_model-> get_customer (3); kalder get_customer-metoden for clients_model og videresendes i parameter 3. I dette eksempel har vi hårdt kodet værdien, men i virkelige applikationer ville dette være en parameter fra URI.
  • $ this-> load-> view ('welcome_message', $ data); indlæser visningen welcome_message og overfører $ data-variablen til visningen

CodeIgniter Model

Lad os nu oprette den visning, som vi henviste til i ovenstående kode. For enkelheds skyld interagerer vores model ikke med databasen, men returnerer en statisk kundeoptegnelse. Vi vil arbejde med databaser i de næste selvstudier.

Opret en fil Customers_model.php i applikation / modeller

Tilføj følgende kode


HER,

  • klasse Customers_model udvider CI_Model {...} definerer modellen Customers_model, der udvider CI_Model.
  • offentlig funktion get_customer ($ id) {...} definerer metoden get customer baseret på et kunde-id
  • $ data [...] definerer de statiske værdier for vores fiktive kunde. Dette skal være en række, der returneres fra databasen.
  • returnere $ data; returnerer kundedataene.

Det vil sige det til vores model. Lad os nu ændre visningen welcome_message

Åbn welcome_message.php placeret i

application/views/welcome_message.php

Udskift koden med følgende

CodeIgniter MVC Basics

Customer Details Card

Customer ID :

First Name :

Last Name :

Address :

Gem ændringerne

Indlæs følgende URL i webbrowseren

http: // localhost: 3000 /

Du skal være i stand til at se kundekortet som vist på billedet nedenfor

Resumé

  • MVC er et arkitektonisk mønster, der opdeler applikationen i tre hovedkomponenter
  • Modellen er ansvarlig for interaktion med datakilder
  • Controlleren lytter efter indgående anmodninger om ressourcer fra brugerne
  • I webapplikationer indeholder visninger ofte HTML, CSS og eventuelt JavaScript
  • En controller modtager anmodningen fra brugeren, interagerer med databasemodellen om nødvendigt og returnerer derefter resultatet tilbage til browseren i form af HTML-kode