Mikä on MVC?
MVC-standardit Model-View-Controlille. Se on arkkitehtoninen malli, joka jakaa sovelluksen kolmeen pääkomponenttiin.
1. Malli käsittelee liiketoimintalogiikkaa ja tietokantojen vuorovaikutusta
2. Ohjain koordinoi toiminnan mallin ja näkymän välillä
3. View on vastuussa tietojen esittämisestä
Seuraavassa on joitain MVC: n arkkitehtonisen mallin etuja
- Löysä kytkentä - komponentit ovat olemassa ja toimivat toisistaan riippumatta.
- Joustavuus - yksittäisiä komponentteja voidaan helposti muuttaa
- Lisääntynyt tuottavuus - useampi kuin yksi henkilö voi työskennellä projektissa samanaikaisesti. Käyttöliittymän kehittäjät voivat työskennellä näkymien ja esitysten kanssa, kun taas taustakehittäjät voivat keskittyä malleihin, ja koska järjestelmä on löyhästi kytketty, se toimii päivän lopussa
Tässä opetusohjelmassa opit:
- Mikä on MVC?
- Malli
- Ohjain
- Näytä
- Kuinka MVC-kehykset toimivat?
- CodeIgniter-ohjain
- CodeIgniter-malli
Malli
Malli on vastuussa vuorovaikutuksesta tietolähteiden kanssa. Tämä on yleensä tietokanta, mutta se voi olla myös palvelu, joka tarjoaa pyydetyt tiedot. On myös yleistä käytäntöä, että liiketoimintalogiikka sisältyy malleihin toisin kuin ohjain. Tätä käytäntöä kutsutaan yleensä rasvamalliksi laiha ohjaaja.
Malli yleensä kirjoittaa tietoja tietokantaan, tarjoaa mekanismin tietojen muokkaamiseen, päivittämiseen ja poistamiseen. Nykyaikaisessa verkkosovelluksessa mallit käyttävät tiedonsiirtosuunnittelumalleja, kuten aktiivista tietuetta, helpottamaan vuorovaikutusta tietokannan kanssa.
Esimerkiksi CodeIgniter käyttää sisäänrakennettua Active Record -kirjastoa auttaakseen malleja, kun taas muut kehykset, kuten Laravel, käyttävät Eloquent Object Relational Mapper (ORM) -ominaisuutta, joka auttaa tietojen käyttöä.
Ohjain
Ohjain kuuntelee saapuvia resurssipyyntöjä käyttäjiltä. Se toimii välituotteena mallin ja näkymän välillä ja toteuttaa toisinaan myös joitain liiketoimintasääntöjä. Oletetaan, että ohjain vastaanottaa pyynnön rekisteröidä käyttäjä tietokantaan.
Rekisterinpitäjä voi suorittaa tietojen tarkistuksen toimitetuille varmistaakseen, että kaikki vaaditut parametrit on toimitettu. Jos jotain puuttuu, käyttäjä ohjataan rekisteröintisivulle ja näytetään asianmukainen virheilmoitus. Rekisterinpitäjä voi myös pyytää mallia suorittamaan enemmän tarkistuksia tarkistamalla, onko lähetetty sähköpostiosoite jo olemassa. Jos kaikki validointisäännöt läpäisevät, ohjain lähettää tiedot malliin prosessointia varten ja odottaa vastausta.
Kun malli on käsitellyt tiedot ja antanut positiivisen vastauksen, ohjain lataa sopivan näkymän ja välittää mallista palautetut tiedot parametrina.
Näytä
Näkymä käsittelee loppukäyttäjälle esitettyjä tietoja. Verkkosovelluksissa näkymissä on usein HTML, CSS ja valinnaisesti JavaScript. Näkymät sisältävät vähimmäisohjelmointikoodin. Näkymissä olevaa koodia käytetään yleensä silmukoiden läpi mallista tai auttajatoiminnosta parametreina vastaanotettujen tietojen kokoelmista tietojen puhdistamiseksi tai linkkien luomiseksi tietueiden muokkaamiseksi. Useimmat nykyaikaiset verkkosovellukset käyttävät yleensä mallimoottoreita, jotka määrittelevät oman syntaksinsa, joka muistuttaa enemmän pseudokoodia ja jonka suunnittelijat voivat helposti ymmärtää. Kun työskentelet CodeIgniterin kanssa, on yleistä käytäntöä käyttää lyhyitä PHP-tunnisteita ja ohjausrakenteita. Jos haluat näyttää jotain CodeIgniterissa, saatat käyttää seuraavaa koodia
Toisin kuin
Ohjausrakenteet kirjoitetaan yleensä seuraavasti
Kuten yllä olevasta esimerkistä näet, näkymä käyttää PHP: n ja HTML: n yhdistelmää sen sijaan, että kaikki suljettaisiin puhtaaseen PHP-koodiin.
Kuinka MVC-kehykset toimivat?
Seuraava kuva esittää MVC-kehyksen toimintaa
Ohjain vastaanottaa pyynnön käyttäjältä, on tarvittaessa vuorovaikutuksessa tietokantamallin kanssa ja palauttaa sitten tuloksen takaisin selaimelle HTML-koodin muodossa, jonka selain tulkitsee ihmisen luettavaan muotoon ja näyttää käyttäjälle.
CodeIgniter-ohjain
Tarkastellaan nyt mitä tapahtui, kun ladasimme yllä olevan URL-osoitteen verkkoselaimeen.
Avaa tiedosto Welcome.php-ohjaimen sijainnissa oleva sovellus / ohjaimet
Sinun pitäisi pystyä näkemään seuraava koodi
load->view('welcome_message');}}
TÄSSÄ,
- define ('BASEPATH') TAI exit ('Suoraa komentosarjan käyttöä ei sallita'); estää suoran pääsyn ohjaimeen, jos pyyntö ei tullut index.php: n kautta. tämä on turvallisuussyistä.
- luokan Welcome laajentaa CI_Controller {…} määrittelee Welcome ohjaimen luokan ja laajentaa vanhemman luokan CI_Controller
- public function index () {…} määrittelee hakemistomenetelmän, joka vastaa URL-osoitetta http: // localhost: 3000
- $ this-> lataa-> näkymä ('welcome_message'); lataa näkymän Welcome_message, joka sijaitsee hakemisto hakemistoissa
Päivitämme nyt hakemistomenetelmän seuraavasti
public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}
TÄSSÄ,
- $ tämä-> kuormitus-> malli ('asiakas_malli'); lataa asiakkaan mallin.
- $ data ['asiakas'] = $ tämä-> asiakkaiden_malli-> hanki_asiakas (3); kutsuu get_customer-metodiksi customers_model ja välittää parametrin 3. Tässä esimerkissä olemme koodanneet arvon kovasti, mutta tosielämän sovelluksissa tämä olisi parametri URI: sta.
- $ this-> lataa-> näkymä ('welcome_message', $ data); lataa welcome_message-näkymän ja välittää $ data-muuttujan näkymään
CodeIgniter-malli
Luodaan nyt näkymä, johon viitoimme yllä olevassa koodissa. Yksinkertaisuuden vuoksi mallimme ei ole vuorovaikutuksessa tietokannan kanssa, mutta palauttaa staattisen asiakastietueen. Työskentelemme tietokantojen kanssa seuraavissa opetusohjelmissa.
Luo tiedosto Customers_model.php sovelluksessa / malleissa
Lisää seuraava koodi
TÄSSÄ,
- luokka Asiakkaat_malli laajentaa CI_Model {…} määrittelee mallin Asiakkaat_malli, joka laajentaa CI_Malli.
- julkinen toiminto get_customer ($ id) {…} määrittelee get customer -menetelmän asiakastunnuksen perusteella
- $ data […] määrittelee varsinaisen asiakkaamme staattiset arvot. Tämän pitäisi olla tietokannasta palautettu rivi.
- palauta $ data; palauttaa asiakastiedot.
Eli se meidän mallillemme. Muutetaan nyt welcome_message-näkymää
Avaa osoitteessa welcome_message.php
application/views/welcome_message.php
Korvaa koodi seuraavalla
CodeIgniter MVC Basics Customer Details Card
Customer ID :
First Name :
Last Name :
Address :
Tallenna muutokset
Lataa seuraava URL-osoite verkkoselaimeen
http: // paikallinen isäntä: 3000 /
Sinun pitäisi pystyä näkemään asiakaskortti alla olevan kuvan mukaisesti
Yhteenveto
- MVC on arkkitehtoninen malli, joka jakaa sovelluksen kolmeen pääkomponenttiin
- Malli on vastuussa vuorovaikutuksesta tietolähteiden kanssa
- Ohjain kuuntelee saapuvia resurssipyyntöjä käyttäjiltä
- Verkkosovelluksissa näkymissä on usein HTML, CSS ja valinnaisesti JavaScript
- Ohjain vastaanottaa pyynnön käyttäjältä, on tarvittaessa vuorovaikutuksessa tietokantamallin kanssa ja palauttaa tuloksen takaisin selaimelle HTML-koodin muodossa