CodeIgniter MVC (Model View Controller) keretrendszer példával

Tartalomjegyzék:

Anonim

Mi az MVC?

MVC szabványok a Model-View-Control számára. Ez egy építészeti minta, amely három fő részre osztja az alkalmazást.

1. A modell az üzleti logikával és az adatbázis-interakciókkal foglalkozik

2. A kontroller koordinálja a modell és a nézet közötti tevékenységeket

3. A View felelős az adatok bemutatásáért

Az alábbiakban bemutatjuk az MVC építészeti mintázatának néhány előnyét

  • Laza kapcsolás - az alkatrészek egymástól függetlenül léteznek és működnek.
  • Rugalmasság - az egyes alkatrészeken könnyen változtatni lehet
  • Fokozott termelékenység - egynél több ember dolgozhat a projekten. A front-end fejlesztők a nézeteken és a prezentációkon dolgozhatnak, míg a háttér-fejlesztők a modellekre koncentrálhatnak, és mivel a rendszer lazán van összekapcsolva, a nap végén működik

Ebben az oktatóanyagban megtudhatja:

  • Mi az MVC?
    • Modell
    • Vezérlő
    • Kilátás
  • Hogyan működnek az MVC keretrendszerek?
  • CodeIgniter vezérlő
  • CodeIgniter modell

Modell

A modell felelős az adatforrásokkal való interakcióért. Ez általában adatbázis, de lehet a kért adatokat szolgáltató szolgáltatás is. Az is általános gyakorlat, hogy az üzleti logika a modellekben található, szemben a vezérlővel. Ezt a gyakorlatot általában zsírmodellnek nevezik zsírmodellnek.

A modell általában adatokat ír be az adatbázisba, mechanizmust biztosít az adatok szerkesztésére, frissítésére és törlésére. Egy modern webalkalmazásban a modellek adatelérési tervezési mintákat, például aktív rekordot használnak, hogy megkönnyítsék az adatbázissal való interakciót.

Például a CodeIgniter egy beépített Active Record könyvtárral segíti a modelleket, míg más keretrendszerek, például a Laravel az Eloquent Object Relational Mapper (ORM) szolgáltatást használja, amely segíti az adatokhoz való hozzáférést.

Vezérlő

A vezérlő meghallgatja a felhasználóktól érkező erőforrás-kéréseket. Közbenső szerepet játszik a modell és a nézet között, és időnként végrehajt néhány üzleti szabályt is. Tegyük fel, hogy a vezérlő kérést kap egy felhasználó regisztrálására az adatbázisban.

Az adatkezelő elvégezheti az adatok ellenőrzését a benyújtottakon annak biztosítása érdekében, hogy az összes előírt paraméter beküldődjön. Ha valami hiányzik, a felhasználót a megfelelő hibaüzenettel a regisztrációs oldalra irányítja. Az adatkezelő azt is kérheti a modelltől, hogy végezzen több ellenőrzést, ellenőrizve, hogy a benyújtott e-mail cím már létezik-e. Ha minden érvényesítési szabály megfelel, akkor a vezérlő elküldi az adatokat a modellnek folyamatra, és várja a választ.

Miután a modell feldolgozta az információt és pozitív választ adott, a vezérlő betölti a megfelelő nézetet, és paraméterként adja át a modelltől visszaküldött adatokat.

Kilátás

A nézet a végfelhasználónak bemutatott adatokkal foglalkozik. A webalkalmazásokban a nézetek gyakran HTML-t, CSS-t és opcionálisan JavaScript-et tartalmaznak. A nézetek minimális programozási kódot tartalmaznak. A nézetekben található kódot általában a modell vagy a segítő funkció paramétereként kapott adatgyűjtemények közötti áttekintésre használják az adatok tisztításához vagy a rekordok szerkesztésére szolgáló hivatkozások létrehozásához. A legtöbb modern webalkalmazás általában olyan sablonmotorokat használ, amelyek meghatározzák saját szintaxisukat, amely inkább pszeudokódhoz hasonlít, és a tervezők számára könnyen érthető. A CodeIgniter alkalmazásakor általános gyakorlat a rövid PHP címkék és vezérlő struktúrák használata. Ha valamit megjelenít a CodeIgniter alkalmazásban, használhatja a következő kódot


Szemben a

A vezérlő struktúrákat általában a következőképpen írják fel


Amint a fenti példából látható, a nézet a PHP és a HTML kombinációját fogja használni, ahelyett, hogy mindent tiszta PHP kódba csatolna.

Hogyan működnek az MVC keretrendszerek?

A következő kép az MVC keretrendszer működését mutatja

A vezérlő megkapja a felhasználótól a kérést, szükség esetén kölcsönhatásba lép az adatbázis-modellel, majd az eredményt visszaküldi a böngészőnek HTML-kód formájában, amelyet a böngésző ember által olvasható formátumban értelmez és megjelenít a felhasználó számára.

CodeIgniter vezérlő

Nézzük most azt, hogy mi történt éppen, amikor betöltöttük a fenti URL-t a webböngészőbe.

Nyissa meg a Welcome.php vezérlő található alkalmazás / vezérlők fájlt

Látnia kell a következő kódot

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

ITT,

  • meghatározott ('BASEPATH') VAGY kilépés ('Nincs engedélyezve a parancsfájl elérése'); megakadályozza a vezérlőhöz való közvetlen hozzáférést, ha a kérés nem az index.php fájlon keresztül érkezett. ez biztonsági célokra szolgál.
  • A Class Welcome kiterjeszti a CI_Controller {…} meghatározza a Welcome vezérlő osztályát, és kiterjeszti a CI_Controller szülő osztályt
  • public function index () {…} meghatározza az index metódust, amely válaszol az URL-re: http: // localhost: 3000
    • $ this-> load-> view ('welcome_message'); betölti az üdvözlő_ üzenet üzenetet, amely az alkalmazás / nézetek könyvtárban található

Most az alábbiakban frissítjük az index metódust

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

ITT,

  • $ this-> load-> model ('customers_model'); betölti az ügyfelek modelljét.
  • $ data ['customer'] = $ this-> customers_model-> get_customer (3); meghívja a get_customer metódust a customers_model és átadja a 3. paraméterben. Ebben a példában keményen kódoltuk az értéket, de a való életben ez az URI paramétere lenne.
  • $ this-> load-> view ('welcome_message', $ data); betölti a welcome_message nézetet és átadja a $ data változót a nézetnek

CodeIgniter modell

Most hozzuk létre azt a nézetet, amelyre a fenti kódban hivatkoztunk. Az egyszerűség kedvéért a modellünk nem fog kölcsönhatásba lépni az adatbázissal, de statikus ügyfélrekordot ad vissza. A következő oktatóanyagokban adatbázisokkal fogunk dolgozni.

Hozzon létre egy Customers_model.php fájlt az alkalmazásban / modellekben

Adja hozzá a következő kódot


ITT,

  • class Customers_model extends A CI_Model {…} meghatározza a Customers_model modellt, amely kiterjeszti a CI_Model modellt.
  • a get_customer ($ id) {…} nyilvános függvény a vásárló megszerzésének módját az ügyfél-azonosító alapján határozza meg
  • A $ data […] meghatározza ügyfelünk statikus értékeit. Ennek az adatbázisból visszaadott sornak kell lennie.
  • return $ data; visszaadja az ügyfél adatait.

Vagyis a mi modellünkhöz. Módosítsuk most az welcome_message nézetet

Nyissa meg a welcome_message.php fájlt

application/views/welcome_message.php

Cserélje ki a kódot a következőkre

CodeIgniter MVC Basics

Customer Details Card

Customer ID :

First Name :

Last Name :

Address :

Mentse a módosításokat

Töltse be a következő URL-t a webböngészőbe

http: // localhost: 3000 /

Látnia kell az ügyfélkártyát az alábbi képen látható módon

Összegzés

  • Az MVC egy építészeti minta, amely három fő részre osztja az alkalmazást
  • A modell felelős az adatforrásokkal való interakcióért
  • A vezérlő meghallgatja a felhasználóktól érkező erőforrás-kéréseket
  • A webalkalmazásokban a nézetek gyakran HTML-t, CSS-t és opcionálisan JavaScript-et tartalmaznak
  • A vezérlő megkapja a felhasználótól a kérést, szükség esetén kölcsönhatásba lép az adatbázis-modellel, majd HTML-kód formájában visszaküldi az eredményt a böngészőnek