CodeIgniter MVC (Model View Controller) ogrodje s primerom

Kazalo:

Anonim

Kaj je MVC?

Standardi MVC za Model-View-Control. Gre za arhitekturni vzorec, ki aplikacijo razdeli na tri glavne komponente.

1. Model se ukvarja s poslovno logiko in interakcijami z bazami podatkov

2. Krmilnik usklajuje dejavnosti med modelom in pogledom

3. Pogled je odgovoren za predstavitev podatkov

Sledi nekaj prednosti arhitekturnega vzorca MVC

  • Ohlapna sklopka - sestavni deli obstajajo in delujejo neodvisno drug od drugega.
  • Prilagodljivost - posamezne komponente lahko enostavno spremenite
  • Povečana produktivnost - na projektu lahko hkrati dela več oseb. Front-end razvijalci lahko delajo na pogledih in predstavitvah, medtem ko se zaledni razvijalci lahko osredotočijo na modele in ker je sistem ohlapno povezan, deluje ob koncu dneva

V tej vadnici boste izvedeli:

  • Kaj je MVC?
    • Model
    • Krmilnik
    • Pogled
  • Kako delujejo okviri MVC?
  • Krmilnik CodeIgniter
  • Model CodeIgniter

Model

Model je odgovoren za interakcijo z viri podatkov. Običajno je to baza podatkov, lahko pa je tudi storitev, ki zagotavlja zahtevane podatke. Običajna praksa je tudi, da imajo poslovna logika v modelih vseeno kot krmilnik. To prakso običajno imenujemo debel model suhega krmilnika.

Model običajno zapisuje podatke v bazo podatkov, ponuja mehanizem za urejanje in posodabljanje ter brisanje podatkov. V sodobni spletni aplikaciji modeli uporabljajo vzorce oblikovanja dostopa do podatkov, kot je aktivni zapis, da olajšajo interakcijo z bazo podatkov.

CodeIgniter na primer uporablja vgrajeno knjižnico Active Record za pomoč modelom, medtem ko drugi okviri, kot je Laravel, uporabljajo Eloquent Object Relational Mapper (ORM), ki pomaga pri dostopu do podatkov.

Krmilnik

Krmilnik posluša dohodne zahteve uporabnikov po virih. Deluje kot posrednik med modelom in pogledom ter včasih izvaja tudi nekatera poslovna pravila. Recimo, da krmilnik prejme zahtevo za registracijo uporabnika v zbirko podatkov.

Upravljavec lahko opravi validacijo podatkov o oddanem, da zagotovi, da so bili predloženi vsi zahtevani parametri. Če kaj manjka, je uporabnik preusmerjen na stran za registracijo s prikazanim ustreznim sporočilom o napaki. Upravljavec lahko od modela zahteva tudi več validacije s preverjanjem, ali predloženi e-poštni naslov že obstaja. Če vsa pravila za preverjanje veljavnosti posredujejo, krmilnik podatke pošlje modelu v postopek in počaka na odgovor.

Ko model obdela informacije in vrne pozitiven odgovor, krmilnik naloži ustrezen pogled in kot parameter posreduje podatke, vrnjene iz modela.

Pogled

Pogled obravnava podatke, predstavljene končnemu uporabniku. V spletnih aplikacijah pogledi pogosto vsebujejo HTML, CSS in po želji JavaScript. Pogledi vsebujejo minimalno programsko kodo. Koda v pogledih se običajno uporablja za kroženje zbirk podatkov, prejetih kot parametri iz modela ali pomožne funkcije za čiščenje podatkov ali ustvarjanje povezav za urejanje zapisov. Večina sodobnih spletnih aplikacij običajno uporablja mehanizme za predloge, ki določajo lastno sintakso, ki je bolj podobna psevdokodi in jo oblikovalci zlahka razumejo. Pri delu s CodeIgniter je običajna praksa, da se uporabljajo kratke oznake PHP in nadzorne strukture. Za prikaz nečesa v CodeIgniter lahko uporabimo naslednjo kodo


V nasprotju z

Nadzorne strukture so običajno napisane na naslednji način


Kot lahko vidite iz zgornjega primera, bo pogled uporabil kombinacijo PHP in HTML, namesto da bi vse zaprl v čisto PHP kodo.

Kako delujejo okviri MVC?

Naslednja slika prikazuje ogrodje MVC

Krmilnik prejme zahtevo od uporabnika, po potrebi sodeluje z modelom baze podatkov, nato pa rezultat vrne v brskalnik v obliki kode HTML, ki jo je brskalnik interpretiral v čitljivo obliko in prikazal uporabniku.

Krmilnik CodeIgniter

Zdaj pa razčlenimo, kaj se je pravkar zgodilo, ko smo v spletni brskalnik naložili zgornji URL.

Odprite datoteko Welcome.php krmilnik, ki se nahaja v aplikaciji / krmilnikih

Morali bi videti naslednjo kodo

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

TUKAJ,

  • definirano ('BASEPATH') ALI izhod ('Ni dovoljen neposreden dostop do skripta'); preprečuje neposreden dostop do krmilnika, če zahteva ni prišla prek index.php. to je zaradi varnosti.
  • razred dobrodošlice razširja CI_Controller {…} definira razred krmilnika dobrodošlice in razširja nadrejeni razred CI_Controller
  • indeks javne funkcije () {…} definira metodo indeksa, ki se odziva na URL http: // localhost: 3000
    • $ this-> load-> view ('welcome_message'); naloži pogled welcome_message, ki se nahaja v imeniku application / views

Zdaj bomo metodo indeksa posodobili, kot sledi

public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}

TUKAJ,

  • $ this-> load-> model ('customers_model'); naloži model kupcev.
  • $ data ['customer'] = $ this-> customers_model-> get_customer (3); pokliče metodo get_customer customers_model in poda parameter 3. V tem primeru smo težko kodirali vrednost, vendar bi bil v resničnih aplikacijah to parameter iz URI-ja.
  • $ this-> load-> view ('welcome_message', $ data); naloži pogled welcome_message in v spremenljivko $ data prenese pogled

Model CodeIgniter

Ustvarimo zdaj pogled, na katerega smo se sklicevali v zgornji kodi. Zaradi enostavnosti naš model ne bo deloval z bazo podatkov, ampak bo vrnil statični zapis stranke. Z bazami podatkov bomo delali v naslednjih vajah.

Ustvari datoteko Customers_model.php v aplikaciji / modelih

Dodajte naslednjo kodo


TUKAJ,

  • razred Customers_model extends CI_Model {…} definira model Customers_model, ki razširja CI_Model.
  • javna funkcija get_customer ($ id) {…} definira metodo pridobivanja stranke na podlagi id-ja stranke
  • $ data […] definira statične vrednosti naše izmišljene stranke. To bi morala biti vrstica, vrnjena iz baze podatkov.
  • vrni $ podatke; vrne podatke o stranki.

Se pravi, to je za naš model. Spremenimo zdaj pogled welcome_message

Odprite welcome_message.php, ki se nahaja v

application/views/welcome_message.php

Kodo zamenjajte z naslednjo

CodeIgniter MVC Basics

Customer Details Card

Customer ID :

First Name :

Last Name :

Address :

Shranite spremembe

V spletni brskalnik naložite naslednji URL

http: // localhost: 3000 /

Morali bi videti kartico stranke, kot je prikazano na spodnji sliki

Povzetek

  • MVC je arhitekturni vzorec, ki aplikacijo deli na tri glavne komponente
  • Model je odgovoren za interakcijo z viri podatkov
  • Krmilnik posluša dohodne zahteve uporabnikov po virih
  • V spletnih aplikacijah pogledi pogosto vsebujejo HTML, CSS in po želji JavaScript
  • Krmilnik prejme zahtevo od uporabnika, po potrebi sodeluje z modelom baze podatkov in rezultat vrne v brskalnik v obliki kode HTML