CodeIgniter MVC (Model View Controller) keretrendszer példa
⚡ Okos összefoglaló
CodeAz Igniter MVC keretrendszer egy alkalmazást modellre, nézetre és vezérlőre oszt. A modell kezeli az adatokat és az üzleti logikát, a vezérlő koordinálja a kéréseket, a nézet pedig megjeleníti az eredményt, ami laza összekapcsolást, rugalmasságot és magasabb fejlesztői termelékenységet biztosít.

Mi az MVC?
Az MVC a Model-View-Controller rövidítése. Ez egy architekturális minta, amely az alkalmazást három fő összetevőre osztja:
- A modell az üzleti logikával és az adatbázis-interakciókkal foglalkozik.
- A vezérlő koordinálja a modell és a nézet közötti tevékenységeket.
- A nézet felelős az adatok megjelenítéséért.
Az MVC architektúramintájának néhány előnye a következő:
- Laza csatolás – az alkatrészek egymástól függetlenül léteznek és működnek.
- Rugalmasság – könnyen módosíthatja az egyes komponenseket.
- Megnövekedett termelékenység – egynél több ember dolgozhat egyszerre a projekten. A front-end fejlesztők a nézeteken és a prezentációkon dolgozhatnak, míg a back-end fejlesztők a modellekre koncentrálhatnak, és mivel a rendszer lazán összekapcsolt, végül minden együtt működik.
Modell
A modell felelős az adatforrásokkal való interakcióért. Ez általában egy adatbázis, de lehet egy szolgáltatás is, amely biztosítja a kért adatokat. Az is bevett gyakorlat, hogy az üzleti logikát a modellekben tartják meg a vezérlő helyett. Ezt a gyakorlatot általában „kövér modell, sovány vezérlő”-nek nevezik.
A modell általában adatokat ír az adatbázisba, és mechanizmust biztosít az adatok szerkesztésére, frissítésére és törlésére. Egy modern webes alkalmazásban a modellek adathozzáférési tervezési mintákat, például az Active Record-ot használnak, hogy megkönnyítsék az adatbázissal való interakciót.
Például, CodeAz Igniter egy beépített Active Record könyvtárat használ a modellek támogatására, míg más keretrendszerek, mint például a Laravel, az Eloquent Object Relational Mapper (ORM)-et használják az adatok eléréséhez.
ellenőr
A vezérlő figyeli a felhasználóktól érkező erőforrás-kéréseket. Közvetítőként működik a modell és a nézet között, és időnként üzleti szabályokat is implementál. Tegyük fel, hogy a vezérlő egy kérést kap egy felhasználó adatbázisba való regisztrálására.
A vezérlő adatellenőrzést végezhet a beküldött adatokon, hogy megbizonyosodjon arról, hogy minden szükséges paraméter jelen van. Ha valami hiányzik, a felhasználót a megfelelő hibaüzenettel átirányítja a regisztrációs oldalra. A vezérlő kérheti a modellt további ellenőrzésre is, például annak ellenőrzésére, hogy a beküldött e-mail cím létezik-e már. Ha minden ellenőrzési szabály sikeres, a vezérlő elküldi az adatokat a modellnek feldolgozásra, é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 átadja a modellből visszaadott adatokat.
Kilátás
A nézet a végfelhasználónak bemutatott adatokkal foglalkozik. A webes alkalmazásokban a nézetek gyakran tartalmaznak HTML-t, CSS-t és opcionálisan JavaForgatókönyvA nézetek minimális programozási kódot tartalmaznak, általában csak annyit, hogy végig lehessen menni a modelltől kapott adatgyűjteményeken, vagy egy segítőfüggvényt az adatok tisztításához vagy szerkesztési hivatkozások létrehozásához. A legtöbb modern webalkalmazás sablonmotorokat használ saját pszeudokódszerű szintaxissal, amelyet a tervezők megértenek. Amikor a ...-val dolgozunk. CodeIgniter esetében bevett gyakorlat rövid PHP tagek és vezérlőstruktúrák használata. Valaminek a megjelenítése a CodeIgniter, a következő kódot használhatod:
<?=$title?>
Szemben ezzel:
<?php
echo $title;
?>
A vezérlőstruktúrákat általában a következőképpen írják le:
<?php foreach ($customers as $customer): ?> <li> <p><?=$customer->first_name?></p> </li> <?php endforeach; ?>
Amint a fenti példából látható, a nézet a következők kombinációját használja PHP és HTML-t ahelyett, hogy mindent tiszta PHP-kódba zárna.
Hogyan működnek az MVC keretrendszerek
A következő kép az MVC keretrendszer működését mutatja be.
Egy vezérlő fogadja a felhasználótól érkező kérést, szükség esetén interakcióba lép az adatbázismodellel, majd HTML-kód formájában visszaadja az eredményt a böngészőnek, amelyet a böngésző ember által olvasható formátumba értelmez, és megjelenít a felhasználónak.
CodeGyújtóvezérlő
Most pedig elemezzük, mi történt a betöltés során. URL a webböngészőbe. Nyissa meg a Welcome.php controller fájlt, amely az application/controllers mappában található. A következő kódot kell látnia:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
Itt:
- defined('BASEPATH') VAGY exit('Nincs közvetlen szkripthozzáférés'); megakadályozza a vezérlőhöz való közvetlen hozzáférést, ha a kérés nem az index.php-n keresztül érkezett. Ez biztonsági okokból van így.
- A Welcome osztály kiterjeszti a CI_Controllert {…} definiálja a Welcome vezérlő osztályt és kiterjeszti a CI_Controller szülő osztályt.
- A public function index(){…} definiálja az index metódust, amely válaszol a következőre: URL
http://localhost:3000. - Betölti a welcome_message nézetet, amely az application/views könyvtárban található.
Most a következőképpen 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 customers_model get_customer metódusát és átadja a 3-as paramétert. Ebben a példában fixen kódoltuk az értéket, de a valós alkalmazásokban ez az URI egy paramétere lenne.
- A $this->load->view('welcome_message',$data); függvény betölti a welcome_message nézetet és átadja a $data változót.
CodeGyújtó modell
Hozzuk létre most a fenti kódban hivatkozott modellt. Az egyszerűség kedvéért a modellünk nem fog interakcióba lépni a adatbázis de egy statikus ügyfélrekordot fog visszaadni. A következő oktatóanyagokban adatbázisokkal fogunk dolgozni. Hozz létre egy Customers_model.php fájlt az application/models könyvtárban, és add hozzá a következő kódot:
<?php class Customers_model extends CI_Model { public function get_customer($id) { $data['id'] = 3; $data['first_name'] = 'John'; $data['last_name'] = 'Doe'; $data['address'] = 'Kingstone'; return $data; } }
Itt:
- osztály Customers_model kiterjeszti a CI_Model {…} meghatározza a Customers_model modellt, amely kiterjeszti a CI_Modelt.
- A public function get_customer($id) {…} a get_customer metódust definiálja egy ügyfél-azonosító alapján.
- A $data[…] paraméter a fiktív ügyfelünk statikus értékeit határozza meg. Ennek az adatbázis által visszaadott sornak kell lennie.
- return $data; visszaadja az ügyfél adatait.
Ennyi a modellünk. Most módosítsuk a welcome_message nézetet. Nyissuk meg a welcome_message.php fájlt, amely a következő helyen található:
application/views/welcome_message.php
Cserélje le a kódot a következőre:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>CodeIgniter MVC Basics</title> </head> <body> <h1>Customer Details Card</h1> <p>Customer ID : <strong><?=$customer['id']?></strong></p> <p>First Name : <strong><?=$customer['first_name']?></strong></p> <p>Last Name : <strong><?=$customer['last_name']?></strong></p> <p>Address : <strong><?=$customer['address']?></strong></p> </body> </html>
Mentse el a módosításokat, és töltse be a következőket URL a webböngészőben: http://localhost:3000/Az alábbi képen látható módon kell látnia az ügyfélkártyát.


