CodeIgniter MVC (Model View Controller) raamistik koos näitega

Lang L: none (table-of-contents):

Anonim

Mis on MVC?

MVC standardid Model-View-Control jaoks. See on arhitektuuriline muster, mis jagab rakenduse kolmeks põhikomponendiks.

1. Mudel käsitleb äriloogikat ja andmebaaside interaktsioone

2. Kontroller koordineerib mudeli ja vaate vahelisi tegevusi

3. Vaade vastutab andmete esitamise eest

Järgnevalt on toodud mõned MVC arhitektuurse mustri eelised

  • Lahtine ühendus - komponendid eksisteerivad ja toimivad üksteisest sõltumatult.
  • Paindlikkus - üksikuid komponente saab hõlpsalt muuta
  • Suurenenud tootlikkus - korraga saab projekti kallal töötada rohkem kui üks inimene. Esiosa arendajad saavad töötada vaadete ja esitluste kallal, taustaprogrammide arendajad saavad aga keskenduda mudelitele ja kuna süsteem on lõdvalt ühendatud, töötab see päeva lõpus

Selles õpetuses saate teada:

  • Mis on MVC?
    • Mudel
    • Kontroller
    • Vaade
  • Kuidas MVC raamistikud töötavad?
  • CodeIgniteri kontroller
  • CodeIgniteri mudel

Mudel

Mudel vastutab andmeallikatega suhtlemise eest. Tavaliselt on see andmebaas, kuid see võib olla ka teenus, mis pakub soovitud andmeid. Samuti on tavaline tava, et äriloogika sisaldub mudelites erinevalt kontrollerist. Seda tava nimetatakse tavaliselt rasva mudeli kõhnaks kontrolleriks.

Mudel kirjutab andmed tavaliselt andmebaasi, pakub andmete redigeerimise, värskendamise ja kustutamise mehhanismi. Kaasaegses veebirakenduses kasutavad mudelid andmebaasiga suhtlemise hõlbustamiseks andmetele juurdepääsu kujundusmustreid, näiteks aktiivset kirjet.

Näiteks kasutab CodeIgniter mudelite abistamiseks sisseehitatud teeki Active Record, samas kui muud raamistikud, näiteks Laravel, kasutavad andmetele juurdepääsu hõlbustavat Eloquent Object Relational Mapperit (ORM).

Kontroller

Kontroller kuulab kasutajate sissetulevaid ressursitaotlusi. See toimib vahendina mudeli ja vaate vahel ning rakendab mõnikord ka mõnda ärireeglit. Oletame, et kontroller saab taotluse kasutaja andmebaasi registreerimiseks.

Vastutav töötleja võib edastatud andmete valideerida, et tagada kõigi nõutavate parameetrite esitamine. Kui midagi on puudu, suunatakse kasutaja registreerimislehele ja kuvatakse vastav tõrketeade. Vastutav töötleja võib nõuda ka mudeli täiendavat valideerimist, kontrollides, kas esitatud e-posti aadress on juba olemas. Kui kõik valideerimisreeglid läbivad, esitab kontroller andmed mudeli töötlemiseks ja ootab vastust.

Kui mudel on teabe töödelnud ja positiivse vastuse andnud, laadib kontroller sobiva vaate ja sisestab parameetrina mudeli tagastatud andmed.

Vaade

Vaade käsitleb lõppkasutajale esitatud andmeid. Veebirakendustes sisaldavad vaated sageli HTML-i, CSS-i ja valikuliselt JavaScripti. Vaated sisaldavad minimaalset programmeerimiskoodi. Vaadetes sisalduvat koodi kasutatakse tavaliselt mudeli või abifunktsiooni parameetritena saadud andmete kogumite sirvimiseks andmete puhastamiseks või linkide loomiseks kirjete redigeerimiseks. Enamik tänapäevaseid veebirakendusi kasutab tavaliselt mallimootoreid, mis määratlevad oma süntaksit, mis sarnaneb pigem pseudokoodiga ja on disaineritele hõlpsasti mõistetav. CodeIgniteriga töötamisel on levinud tava kasutada lühikesi PHP-silte ja juhtimisstruktuure. Midagi kuvamiseks CodeIgniteris võib kasutada järgmist koodi


Erinevalt

Juhtimisstruktuurid kirjutatakse tavaliselt järgmiselt


Nagu ülaltoodud näitest näha, kasutab vaade PHP ja HTML kombinatsiooni selle asemel, et kõik ümbritseda puhta PHP-koodiga.

Kuidas MVC raamistikud töötavad?

Järgmisel pildil on näidatud MVC raamistiku tööd

Kontroller võtab kasutajalt päringu vastu, suhtleb vajadusel andmebaasimudeliga ja tagastab tulemuse seejärel brauserisse HTML-koodi kujul, mille brauser tõlgendab inimesele loetavas vormingus ja kuvatakse kasutajale.

CodeIgniteri kontroller

Jaotame nüüd, mis just juhtus, kui laadisime ülaltoodud URL-i veebibrauserisse.

Avage fail Welcome.php kontroller asub rakendus / kontrollerid

Peaksite nägema järgmist koodi

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

SIIN,

  • define ('BASEPATH') VÕI exit ('Skripti otsene juurdepääs pole lubatud'); takistab otsest juurdepääsu kontrollerile, kui taotlus ei tulnud läbi index.php. see on turvalisuse eesmärgil.
  • klassi Welcome laiendab CI_Controller {…} määratleb tervituskontrolleri klassi ja laiendab vanemklassi CI_Controller
  • avaliku funktsiooni register () {…} määratleb URL-ile http: // localhost: 3000 reageeriva indeksimeetodi
    • $ this-> load-> view ('teretulnud_sõnum'); laadib vaate welcome_message, mis asub rakenduste / vaadete kataloogis

Nüüd värskendame indeksi meetodit järgmiselt

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

SIIN,

  • $ see-> laadige-> mudel ('klientide_mudel'); laadib klientide mudeli.
  • $ data ['customer'] = $ this-> customers_model-> get_customer (3); kutsub meetodit get_customer klientide_mudel ja edastab parameetri 3. Selles näites oleme väärtuse kõvasti kodeerinud, kuid reaalsetes rakendustes oleks see URI parameeter.
  • $ this-> load-> vaade ('welcome_message', $ data); laadib vaate welcome_message ja edastab vaates andmemuutuja $

CodeIgniteri mudel

Loome nüüd vaate, millele ülaltoodud koodis viidasime. Lihtsuse mõttes ei suhtle meie mudel andmebaasiga, vaid tagastab staatilise kliendikirje. Järgmistes õpetustes töötame andmebaasidega.

Looge rakenduses / mudelites fail Customers_model.php

Lisage järgmine kood


SIIN,

  • klass Customers_model extends CI_Model {…} määratleb mudeli Customers_model, mis laiendab CI_Model.
  • avalik funktsioon get_customer ($ id) {…} määratleb kliendi ID põhjal kliendi hankimise meetodi
  • $ data […] määratleb meie tegeliku kliendi staatilised väärtused. See peaks olema andmebaasist tagastatud rida.
  • tagastage $ andmed; tagastab kliendiandmed.

See tähendab, et see sobib meie mudeli jaoks. Muudame nüüd vaate welcome_message

Ava aadressil welcome_message.php

application/views/welcome_message.php

Asendage kood järgmisega

CodeIgniter MVC Basics

Customer Details Card

Customer ID :

First Name :

Last Name :

Address :

Salvestage muudatused

Laadige järgmine URL veebibrauserisse

http: // localhost: 3000 /

Peaksite nägema kliendikaarti, nagu on näidatud alloleval pildil

Kokkuvõte

  • MVC on arhitektuuriline muster, mis jagab rakenduse kolmeks põhikomponendiks
  • Mudel vastutab andmeallikatega suhtlemise eest
  • Kontroller kuulab kasutajate sissetulevaid ressursitaotlusi
  • Veebirakendustes sisaldavad vaated sageli HTML-i, CSS-i ja valikuliselt JavaScripti
  • Kontroller võtab kasutajalt päringu vastu, suhtleb vajadusel andmebaasimudeliga ja tagastab tulemuse seejärel HTML-koodi kujul brauserisse