CodeIgniter MVC (Model View Controller) Framework med exempel

Innehållsförteckning:

Anonim

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