CodeIgniter MVC (Model View Controller) Framework s příkladem

Obsah:

Anonim

Co je MVC?

Standardy MVC pro Model-View-Control. Jedná se o architektonický vzor, ​​který rozděluje aplikaci na tři hlavní komponenty.

1. Model se zabývá obchodní logikou a databázovými interakcemi

2. Řadič koordinuje aktivity mezi modelem a pohledem

3. View je zodpovědný za prezentaci dat

Následují některé z výhod architektonického vzoru MVC

  • Volná vazba - komponenty existují a fungují nezávisle na sobě.
  • Flexibilita - lze snadno provádět změny u jednotlivých komponent
  • Zvýšená produktivita - na projektu může pracovat více než jedna osoba současně. Frontendoví vývojáři mohou pracovat na zobrazeních a prezentaci, zatímco backendoví vývojáři se mohou soustředit na modely, a protože je systém volně spojený, funguje na konci dne

V tomto výukovém programu se naučíte:

  • Co je MVC?
    • Modelka
    • Ovladač
    • Pohled
  • Jak fungují rámce MVC?
  • Řadič CodeIgniter
  • CodeIgniter Model

Modelka

Model je zodpovědný za interakci se zdroji dat. Toto je obvykle databáze, ale může to být také služba, která poskytuje požadovaná data. Je také běžnou praxí mít obchodní logiku obsaženou v modelech na rozdíl od řadiče. Tato praxe se obvykle nazývá hubený model hubeného řadiče.

Model obvykle zapisuje data do databáze, poskytuje mechanismus pro úpravy a aktualizaci a mazání dat. V moderní webové aplikaci používají modely pro usnadnění interakce s databází návrhové vzory přístupu k datům, jako je aktivní záznam.

Například CodeIgniter používá vestavěnou knihovnu Active Record k podpoře modelů, zatímco jiné rámce jako Laravel používají Eloquent Object Relational Mapper (ORM), který usnadňuje přístup k datům.

Ovladač

Řadič naslouchá příchozím žádostem o prostředky od uživatelů. Funguje jako prostředník mezi modelem a pohledem a občas implementuje také některá obchodní pravidla. Řekněme, že správce obdrží požadavek na registraci uživatele v databázi.

Správce může provést ověření dat na základě toho, co bylo předloženo, aby bylo zajištěno, že byly odeslány všechny požadované parametry. Pokud něco chybí, je uživatel přesměrován na registrační stránku se zobrazením příslušné chybové zprávy. Správce může také požádat model, aby provedl více validace kontrolou, zda zadaná e-mailová adresa již existuje. Pokud všechna ověřovací pravidla projdou, správce odešle data do modelu pro proces a čeká na odpověď.

Jakmile model zpracoval informace a vrátil pozitivní odpověď, načte řídicí jednotka příslušné zobrazení a předá data vrácená z modelu jako parametr.

Pohled

Pohled se zabývá daty prezentovanými koncovému uživateli. Ve webových aplikacích zobrazení často obsahují HTML, CSS a volitelně JavaScript. Pohledy obsahují minimální programovací kód. Kód obsažený v pohledech se obvykle používá k procházení kolekcí dat přijatých jako parametry z funkce modelu nebo pomocníka pro vyčištění dat nebo vytváření odkazů k úpravě záznamů. Většina moderních webových aplikací obvykle používá šablonové nástroje, které definují vlastní syntaxi, která je spíše jako pseudokód a návrháři ji snadno pochopí. Při práci s CodeIgniter je běžnou praxí používat krátké PHP tagy a kontrolní struktury. Chcete-li zobrazit něco v CodeIgniter, můžete použít následující kód


Naproti tomu

Řídicí struktury jsou obvykle psány následovně


Jak můžete vidět z výše uvedeného příkladu, pohled bude místo kombinace všeho v čistém kódu PHP používat kombinaci PHP a HTML.

Jak fungují rámce MVC?

Následující obrázek ukazuje MVC framework funguje

Řídicí jednotka obdrží požadavek od uživatele, v případě potřeby interaguje s databázovým modelem a poté vrátí výsledek zpět do prohlížeče ve formě kódu HTML, který prohlížeč interpretoval do formátu čitelného pro člověka a zobrazí se uživateli.

Řadič CodeIgniter

Pojďme nyní rozebrat, co se právě stalo, když jsme načetli výše uvedenou adresu URL do webového prohlížeče.

Otevřete soubor Welcome.php řadič umístěný aplikace / řadiče

Měli byste vidět následující kód

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

TADY,

  • definované ('BASEPATH') NEBO exit ('Není povolen přímý přístup ke skriptu'); zabrání přímému přístupu k řadiči, pokud požadavek nepřišel přes index.php. to je z bezpečnostních důvodů.
  • třída Welcome rozšiřuje CI_Controller {…} definuje třídu Welcome Controller a rozšiřuje nadřazenou třídu CI_Controller
  • public function index () {…} definuje metodu indexu, která odpovídá na adresu URL http: // localhost: 3000
    • $ this-> load-> view ('welcome_message'); načte pohled welcome_message, který je umístěn v adresáři application / views

Nyní budeme aktualizovat metodu indexu následujícím způsobem

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

TADY,

  • $ this-> load-> model ('customers_model'); načte model zákazníků.
  • $ data ['customer'] = $ this-> customers_model-> get_customer (3); zavolá metodu get_customer of customers_model a předá parametr 3. V tomto příkladu máme pevně zakódovanou hodnotu, ale v reálných aplikacích by to byl parametr z URI.
  • $ this-> load-> view ('welcome_message', $ data); načte pohled welcome_message a předá do zobrazení proměnnou $ data

CodeIgniter Model

Pojďme nyní vytvořit pohled, na který jsme odkazovali ve výše uvedeném kódu. Pro zjednodušení nebude náš model interagovat s databází, ale vrátí statický záznam zákazníka. V příštích cvičeních budeme pracovat s databázemi.

Vytvořte soubor Customers_model.php v aplikaci / modelech

Přidejte následující kód


TADY,

  • třída Customers_model rozšiřuje CI_Model {…} definuje model Customers_model, který rozšiřuje CI_Model.
  • public function get_customer ($ id) {…} definuje metodu get customer na základě ID zákazníka
  • $ data […] definují statické hodnoty našeho fiktivního zákazníka. To by měl být řádek vrácený z databáze.
  • vrátit $ data; vrátí údaje o zákazníkovi.

To znamená pro náš model. Pojďme nyní upravit pohled welcome_message

Otevřete welcome_message.php umístěný v

application/views/welcome_message.php

Nahraďte kód následujícím textem

CodeIgniter MVC Basics

Customer Details Card

Customer ID :

First Name :

Last Name :

Address :

Uložte změny

Vložte následující adresu URL do webového prohlížeče

http: // localhost: 3000 /

Měli byste vidět zákaznickou kartu, jak je znázorněno na obrázku níže

souhrn

  • MVC je architektonický vzor, ​​který rozděluje aplikaci na tři hlavní komponenty
  • Model je zodpovědný za interakci se zdroji dat
  • Řadič naslouchá příchozím žádostem o prostředky od uživatelů
  • Ve webových aplikacích zobrazení často obsahují HTML, CSS a volitelně JavaScript
  • Řadič obdrží požadavek od uživatele, v případě potřeby interaguje s databázovým modelem a poté vrátí výsledek zpět do prohlížeče ve formě HTML kódu