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