„CodeIgniter MVC“ („Model View Controller“) sistema su pavyzdžiu

Turinys:

Anonim

Kas yra MVC?

„Model-View-Control“ MVC standartai. Tai yra architektūrinis modelis, suskaidantis programą į tris pagrindinius komponentus.

1. Modelis susijęs su verslo logika ir duomenų bazių sąveika

2. Valdiklis koordinuoja modelio ir vaizdo veiksmus

3. „View“ yra atsakingas už duomenų pateikimą

Toliau pateikiami keli MVC architektūrinio modelio pranašumai

  • Laisva jungtis - komponentai egzistuoja ir veikia nepriklausomai vienas nuo kito.
  • Lankstumas - galima lengvai keisti atskirus komponentus
  • Padidėjęs produktyvumas - vienu metu prie projekto gali dirbti daugiau nei vienas asmuo. Front-end kūrėjai gali dirbti su rodiniais ir pristatymais, o backend kūrėjai gali sutelkti dėmesį į modelius, o kadangi sistema yra laisvai sujungta, ji veikia dienos pabaigoje

Šioje pamokoje sužinosite:

  • Kas yra MVC?
    • Modelis
    • Valdiklis
    • Vaizdas
  • Kaip veikia MVC sistemos?
  • „CodeIgniter“ valdiklis
  • „CodeIgniter“ modelis

Modelis

Modelis yra atsakingas už sąveiką su duomenų šaltiniais. Paprastai tai yra duomenų bazė, tačiau ji taip pat gali būti paslauga, teikianti prašomus duomenis. Taip pat įprasta, kad verslo logika yra modeliuose, o ne valdiklyje. Ši praktika paprastai vadinama riebalų modelio lieknu valdikliu.

Modelis paprastai įrašo duomenis į duomenų bazę, pateikia duomenų redagavimo ir atnaujinimo bei ištrynimo mechanizmą. Šiuolaikinėje žiniatinklio programoje modeliai naudoja duomenų prieigos dizaino modelius, tokius kaip aktyvus įrašas, kad būtų lengviau bendrauti su duomenų baze.

Pavyzdžiui, „CodeIgniter“ naudoja integruotą bibliotekos „Active Record“, kad padėtų modeliams, o kitos sistemos, pvz., „Laravel“, naudoja „Eloquent Object Relational Mapper“ (ORM), kuri padeda pasiekti duomenis.

Valdiklis

Valdiklis klauso gaunamų vartotojų išteklių prašymų. Jis veikia kaip tarpinis tarp modelio ir vaizdo ir kartais įgyvendina kai kurias verslo taisykles. Tarkime, valdiklis gauna prašymą registruoti vartotoją duomenų bazėje.

Duomenų valdytojas gali patikrinti duomenis, kurie buvo pateikti, kad užtikrintų, jog buvo pateikti visi reikalingi parametrai. Jei kažko trūksta, vartotojas nukreipiamas į registracijos puslapį su atitinkamu klaidos pranešimu. Valdiklis taip pat gali paprašyti, kad modelis atliktų daugiau patikrinimo, patikrindamas, ar pateiktas el. Pašto adresas jau yra. Jei visos patvirtinimo taisyklės praeina, valdiklis pateikia duomenis modeliui apdoroti ir laukia atsakymo.

Kai modelis apdoroja informaciją ir pateikia teigiamą atsakymą, valdiklis įkelia reikiamą vaizdą ir kaip parametrą perduoda duomenis, grąžintus iš modelio.

Vaizdas

Rodinyje kalbama apie galutiniam vartotojui pateiktus duomenis. Žiniatinklio programose rodiniuose dažnai yra HTML, CSS ir pasirinktinai „JavaScript“. Rodiniuose yra minimalus programavimo kodas. Rodiniuose esantis kodas paprastai naudojamas norint surinkti duomenis, gautus kaip parametrus iš modelio ar pagalbinės funkcijos, norint išvalyti duomenis arba sukurti nuorodas įrašams redaguoti. Dauguma šiuolaikinių žiniatinklio programų dažniausiai naudoja šablonų variklius, kurie apibrėžia savo sintaksę, kuri labiau panaši į pseudokodą ir kurią lengvai supranta dizaineriai. Dirbant su „CodeIgniter“, įprasta naudoti trumpas PHP žymas ir valdymo struktūras. Norėdami ką nors parodyti „CodeIgniter“, galite naudoti šį kodą


Priešingai nei

Valdymo struktūros paprastai rašomos taip


Kaip matote iš aukščiau pateikto pavyzdžio, rodinyje bus naudojamas PHP ir HTML derinys, o ne viskas apgaubta grynu PHP kodu.

Kaip veikia MVC sistemos?

Šiame paveikslėlyje parodyti MVC karkaso darbai

Valdiklis gauna vartotojo užklausą, prireikus sąveikauja su duomenų bazės modeliu, tada grąžina rezultatą atgal į naršyklę HTML kodo pavidalu, kurį naršyklė interpretuoja į žmonėms suprantamą formatą ir pateikia vartotojui.

„CodeIgniter“ valdiklis

Dabar suskirstykime, kas nutiko, kai į žiniatinklio naršyklę įkėlėme pirmiau nurodytą URL.

Atidarykite failą „Welcome.php“ valdiklis, kuriame yra programa / valdikliai

Turėtumėte matyti šį kodą

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

ČIA

  • apibrėžta ('BASEPATH') ARBA išeiti ('neleidžiama tiesioginė scenarijaus prieiga'); apsaugo nuo tiesioginės prieigos prie valdiklio, jei užklausa nebuvo pateikta per index.php. tai yra saugumo sumetimais.
  • klasės „Welcome“ praplečia „CI_Controller“ {…} apibrėžia „Welcome“ valdiklio klasę ir pratęsia pagrindinės klasės „CI_Controller“ klasę
  • viešosios funkcijos rodyklė () {…} apibrėžia indekso metodą, kuris reaguoja į URL http: // localhost: 3000
    • $ this-> load-> rodinys ('welcome_message'); įkelia peržiūrą welcome_message, esančią programų / rodinių kataloge

Dabar indekso metodą atnaujinsime taip

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

ČIA

  • $ this-> load-> model ('kliento_modelis'); įkelia klientų modelį.
  • $ data ['customer'] = $ this-> customers_model-> get_customer (3); iškviečia „get_customer“ kliento_modelio metodą ir perduoda 3 parametrą. Šiame pavyzdyje mes sunkiai užkodavome vertę, tačiau realiose gyvenimo programose tai būtų parametras iš URI.
  • $ this-> load-> rodinys ('welcome_message', $ data); įkelia „welcome_message“ rodinį ir perduoda rodinyje „$ data“ kintamąjį

„CodeIgniter“ modelis

Dabar sukurkime rodinį, į kurį nurodėme aukščiau pateiktame kode. Kad būtų paprasčiau, mūsų modelis nesąveiks su duomenų baze, bet pateiks statinį kliento įrašą. Kitose pamokose dirbsime su duomenų bazėmis.

Programoje / modeliuose sukurkite failą Customers_model.php

Pridėkite šį kodą


ČIA

  • klasė „Customers_model“ praplečia CI_Model {…} apibrėžia „Customers_model“ modelį, kuris praplečia CI_Model.
  • viešoji funkcija get_customer ($ id) {…} apibrėžia kliento gavimo metodą, pagrįstą kliento ID
  • $ data […] apibrėžia statinio mūsų faktinio kliento vertes. Tai turėtų būti eilutė, grąžinta iš duomenų bazės.
  • grąžinti $ duomenis; grąžina kliento duomenis.

Tai yra, mūsų modeliui. Dabar pakeiskime „welcome_message“ rodinį

Atidarykite welcome_message.php, esantį

application/views/welcome_message.php

Pakeiskite kodą tokiu

CodeIgniter MVC Basics

Customer Details Card

Customer ID :

First Name :

Last Name :

Address :

Išsaugokite pakeitimus

Įkelkite šį URL į žiniatinklio naršyklę

http: // localhost: 3000 /

Turėtumėte matyti kliento kortelę, kaip parodyta paveikslėlyje žemiau

Santrauka

  • MVC yra architektūrinis modelis, suskaidantis programą į tris pagrindinius komponentus
  • Modelis yra atsakingas už sąveiką su duomenų šaltiniais
  • Valdiklis klauso gaunamų vartotojų išteklių prašymų
  • Žiniatinklio programose rodiniuose dažnai yra HTML, CSS ir pasirinktinai „JavaScript“
  • Valdiklis gauna vartotojo užklausą, prireikus sąveikauja su duomenų bazės modeliu, tada grąžina rezultatą atgal į naršyklę HTML kodo pavidalu