Vad är MVC?
MVC-standarder för Model-View-Control. Det är ett arkitektoniskt mönster som delar upp applikationen i tre huvudkomponenter.
1. Modellen behandlar affärslogik och databasinteraktioner
2. Styrenheten samordnar aktiviteterna mellan modellen och vyn
3. View ansvarar för datapresentationen
Följande är några av fördelarna med MVC arkitektoniska mönster
- Lös koppling - komponenterna finns och fungerar oberoende av varandra.
- Flexibilitet - man kan enkelt göra ändringar i enskilda komponenter
- Ökad produktivitet - mer än en person kan arbeta på projektet samtidigt. Frontend-utvecklarna kan arbeta med vyer och presentation medan backend-utvecklare kan fokusera på modeller och eftersom systemet är löst kopplat fungerar det i slutet av dagen
I den här handledningen lär du dig:
- Vad är MVC?
- Modell
- Kontroller
- Se
- Hur fungerar MVC-ramar?
- CodeIgniter Controller
- CodeIgniter-modell
Modell
Modellen ansvarar för interaktion med datakällor. Detta är vanligtvis en databas, men det kan också vara en tjänst som tillhandahåller de begärda uppgifterna. Det är också vanligt att ha affärslogiken i modellerna i motsats till styrenheten. Denna praxis kallas vanligtvis fettmodell mager controller.
Modellen skriver vanligtvis data i databasen, ger en mekanism för redigering och uppdatering och radering av data. I en modern webbapplikation använder modeller designmönster för dataåtkomst som aktiv post för att göra interaktionen med databasen enklare.
Till exempel använder CodeIgniter ett inbyggt bibliotek Active Record för att hjälpa modellerna medan andra ramar som Laravel använder Eloquent Object Relational Mapper (ORM) som underlättar dataåtkomst.
Kontroller
Styrenheten lyssnar på inkommande begäranden om resurser från användarna. Det fungerar som mellanled mellan modellen och vyn och implementerar ibland också några affärsregler. Låt oss säga att styrenheten får en begäran om att registrera en användare i databasen.
Den registeransvarige kan utföra datavalidering av vad som har skickats in för att säkerställa att alla nödvändiga parametrar har lämnats in. Om något saknas omdirigeras användaren till registreringssidan med lämpligt felmeddelande. Den registeransvarige kan också begära att modellen utför mer validering genom att kontrollera om den inlämnade e-postadressen redan finns. Om alla valideringsregler passerar överför kontrollen data till modellen för process och väntar på svaret.
När modellen har bearbetat informationen och returnerat ett positivt svar laddar styrenheten lämplig vy och skickar in data som returneras från modellen som en parameter.
Se
Vyn behandlar data som presenteras för slutanvändaren. I webbapplikationer innehåller vyer ofta HTML, CSS och eventuellt JavaScript. Visningar innehåller minsta programmeringskod. Koden i vyer används vanligtvis för att gå igenom insamlingar av data som tas emot som parametrar från modellen eller hjälpfunktionen för att städa upp data eller skapa länkar för att redigera posterna. De flesta moderna webbapplikationer använder vanligtvis mallmotorer som definierar sin egen syntax som är mer som pseudokod och lätt kan förstås av designers. När du arbetar med CodeIgniter är det vanligt att använda korta PHP-taggar och kontrollstrukturer. För att visa något i CodeIgniter kan man använda följande kod
I motsats till
Kontrollstrukturer skrivs vanligtvis enligt följande
Som du kan se från exemplet ovan använder vyn en kombination av PHP och HTML istället för att bifoga allt i ren PHP-kod.
Hur fungerar MVC-ramar?
Följande bild visar MVC-ramverk
En styrenhet tar emot begäran från användaren, interagerar med databasmodellen vid behov och returnerar sedan resultatet tillbaka till webbläsaren i form av HTML-kod som webbläsaren tolkade till ett läsbart format och visas för användaren.
CodeIgniter Controller
Låt oss nu dela upp vad som just hände när vi laddade webbadressen ovan i webbläsaren.
Öppna filen Welcome.php-kontroller lokaliserad applikation / styrenheter
Du borde kunna se följande kod
load->view('welcome_message');}}
HÄR,
- definierad ('BASEPATH') ELLER avsluta ('Ingen direkt skriptåtkomst tillåten'); förhindrar direkt åtkomst till styrenheten om begäran inte kom genom index.php. detta är av säkerhetsskäl.
- klass Välkommen utökar CI_Controller {...} definierar välkomstkontrollklassen och utökar överordnad klass CI_Controller
- public function index () {...} definierar indexmetoden som svarar på webbadressen http: // localhost: 3000
- $ this-> load-> view ('welcome_message'); laddar vyn välkomstmeddelande som finns i applikation / vyer-katalogen
Vi kommer nu att uppdatera indexmetoden enligt följande
public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}
HÄR,
- $ this-> load-> model ('customers_model'); laddar kundmodellen.
- $ data ['customer'] = $ this-> customers_model-> get_customer (3); kallar get_customer-metoden för clients_model och skickar in parametern 3. I detta exempel har vi hårt kodat värdet men i verkliga applikationer skulle detta vara en parameter från URI.
- $ this-> load-> view ('welcome_message', $ data); laddar vyn welcome_message och skickar in $ data-variabeln till vyn
CodeIgniter-modell
Låt oss nu skapa den vy som vi refererade till i ovanstående kod. För enkelhetens skull kommer vår modell inte att interagera med databasen utan returnera en statisk kundpost. Vi kommer att arbeta med databaser i nästa handledning.
Skapa en fil Customers_model.php i applikation / modeller
Lägg till följande kod
HÄR,
- klass Customers_model utökar CI_Model {...} definierar modellen Customers_model som utökar CI_Model.
- public function get_customer ($ id) {...} definierar metoden get customer baserat på ett kund-id
- $ data [...] definierar de statiska värdena för vår fiktiva kund. Detta bör vara en rad som returneras från databasen.
- returnera $ data; returnerar kunddata.
Det vill säga det för vår modell. Låt oss nu ändra välkomstmeddelandet
Öppna Welcome_message.php i
application/views/welcome_message.php
Ersätt koden med följande
CodeIgniter MVC Basics Customer Details Card
Customer ID :
First Name :
Last Name :
Address :
Spara ändringarna
Ladda följande URL i webbläsaren
http: // localhost: 3000 /
Du bör kunna se kundkortet enligt bilden nedan
Sammanfattning
- MVC är ett arkitektoniskt mönster som delar upp applikationen i tre huvudkomponenter
- Modellen ansvarar för interaktion med datakällor
- Styrenheten lyssnar på inkommande begäranden om resurser från användarna
- I webbapplikationer innehåller vyer ofta HTML, CSS och eventuellt JavaScript
- En styrenhet tar emot begäran från användaren, interagerar med databasmodellen vid behov och returnerar sedan resultatet till webbläsaren i form av HTML-kod