Cadrul CodeIgniter MVC (Model View Controller) cu exemplu

Cuprins:

Anonim

Ce este MVC?

Standarde MVC pentru Model-View-Control. Este un model arhitectural care împarte aplicația în trei componente majore.

1. Modelul tratează logica de afaceri și interacțiunile bazei de date

2. Controlerul coordonează activitățile dintre model și vizualizare

3. View este responsabil pentru prezentarea datelor

Următoarele sunt câteva dintre avantajele modelului arhitectural MVC

  • Cuplare slabă - componentele există și funcționează independent una de cealaltă.
  • Flexibilitate - se pot modifica cu ușurință componentele individuale
  • Productivitate crescută - mai multe persoane pot lucra la proiect în același timp. Dezvoltatorii front-end pot lucra la vizualizări și prezentare, în timp ce dezvoltatorii de backend se pot concentra pe modele și, deoarece sistemul este cuplat slab, funcționează la sfârșitul zilei

În acest tutorial, veți învăța:

  • Ce este MVC?
    • Model
    • Controlor
    • Vedere
  • Cum funcționează cadrele MVC?
  • Controler CodeIgniter
  • Modelul CodeIgniter

Model

Modelul este responsabil pentru interacțiunea cu sursele de date. Aceasta este de obicei o bază de date, dar poate fi și un serviciu care furnizează datele solicitate. Este, de asemenea, o practică obișnuită să ai logica de afaceri conținută în modele, spre deosebire de controler. Această practică este denumită, de obicei, controlor slab al modelului de grăsime.

Modelul scrie de obicei date în baza de date, oferă un mecanism de editare și actualizare și ștergere a datelor. Într-o aplicație web modernă, modelele folosesc modele de proiectare a accesului la date, cum ar fi înregistrarea activă, pentru a facilita interacțiunea cu baza de date.

De exemplu, CodeIgniter folosește o bibliotecă încorporată Active Record pentru a ajuta modelele în timp ce alte cadre precum Laravel folosesc Eloquent Object Relational Mapper (ORM) care facilitează accesul la date.

Controlor

Controlerul ascultă solicitările de resurse primite de la utilizatori. Acționează ca intermediar între model și vizualizare și uneori implementează și unele reguli de afaceri. Să presupunem că controlerul primește o cerere de înregistrare a unui utilizator în baza de date.

Operatorul poate efectua validarea datelor despre ceea ce a fost trimis pentru a se asigura că toți parametrii solicitați au fost trimiși. Dacă lipsește ceva, utilizatorul este redirecționat către pagina de înregistrare cu mesajul de eroare corespunzător afișat. Controlorul poate solicita, de asemenea, modelului să efectueze mai multe validări, verificând dacă adresa de e-mail trimisă există deja. Dacă toate regulile de validare trec, operatorul trimite datele modelului pentru proces și așteaptă răspunsul.

Odată ce modelul a procesat informațiile și a returnat un răspuns pozitiv, controlerul încarcă vizualizarea corespunzătoare și transmite datele returnate din model ca parametru.

Vedere

Vizualizarea tratează datele prezentate utilizatorului final. În aplicațiile web, vizualizările conțin adesea HTML, CSS și opțional JavaScript. Vizualizările conțin cod minim de programare. Codul conținut în vizualizări este de obicei utilizat pentru a parcurge colecțiile de date primite ca parametri de la modelul sau funcția de ajutor pentru curățarea datelor sau crearea de legături pentru editarea înregistrărilor. Majoritatea aplicațiilor web moderne utilizează de obicei motoare de tip template care își definesc propria sintaxă, care seamănă mai mult cu pseudocodul și poate fi ușor înțeleasă de către designeri. Când lucrați cu CodeIgniter, este o practică obișnuită să utilizați etichete PHP scurte și structuri de control. Pentru a afișa ceva în CodeIgniter, s-ar putea folosi următorul cod


Spre deosebire de

Structurile de control sunt de obicei scrise după cum urmează


După cum puteți vedea din exemplul de mai sus, vizualizarea va utiliza o combinație de PHP și HTML în loc să încadreze totul în cod PHP pur.

Cum funcționează cadrele MVC?

Următoarea imagine prezintă funcționarea cadrului MVC

Un controler primește cererea de la utilizator, interacționează cu modelul bazei de date, dacă este necesar, apoi returnează rezultatul înapoi în browser sub forma unui cod HTML pe care browserul l-a interpretat într-un format lizibil de către om și afișat utilizatorului.

Controler CodeIgniter

Să prezentăm acum ceea ce tocmai s-a întâmplat când am încărcat adresa URL de mai sus în browserul web.

Deschideți fișierul Welcome.php controler localizat aplicație / controlere

Ar trebui să puteți vedea următorul cod

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

AICI,

  • definit („BASEPATH”) SAU ieșire („Nu este permis accesul direct la script”); împiedică accesul direct la controler dacă cererea nu a venit prin index.php. aceasta este din motive de securitate.
  • clasa Welcome extinde CI_Controller {...} definește clasa Welcome controller și extinde clasa părinte CI_Controller
  • indexul funcției publice () {...} definește metoda indexului care răspunde la adresa URL http: // localhost: 3000
    • $ this-> load-> view ('welcome_message'); încarcă vizualizarea welcome_message care se află în directorul aplicații / vizualizări

Acum vom actualiza metoda indexului după cum urmează

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

AICI,

  • $ this-> load-> model ('clienți_model'); încarcă modelul clienților.
  • $ data ['client'] = $ this-> customers_model-> get_customer (3); apelează metoda get_customer de customers_model și trece în parametrul 3. În acest exemplu, am codificat cu greu valoarea, dar în aplicațiile din viața reală, acesta ar fi un parametru din URI.
  • $ this-> load-> view ('welcome_message', $ data); încarcă vizualizarea welcome_message și trece în variabila $ data în vizualizare

Modelul CodeIgniter

Să creăm acum vizualizarea la care am făcut referire în codul de mai sus. Pentru simplitate, modelul nostru nu va interacționa cu baza de date, ci va returna o înregistrare statică a clientului. Vom lucra cu baze de date în următoarele tutoriale.

Creați un fișier Customers_model.php în aplicație / modele

Adăugați următorul cod


AICI,

  • clasa Customers_model extinde CI_Model {…} definește modelul Customers_model care extinde CI_Model.
  • funcția publică get_customer ($ id) {...} definește metoda get client pe baza unui id client
  • $ data [...] definește valorile statice ale clientului nostru ficțios. Acesta ar trebui să fie un rând returnat din baza de date.
  • returnează $ date; returnează datele clientului.

Adică pentru modelul nostru. Să modificăm acum vizualizarea welcome_message

Deschideți Welcome_message.php situat în

application/views/welcome_message.php

Înlocuiți codul cu următoarele

CodeIgniter MVC Basics

Customer Details Card

Customer ID :

First Name :

Last Name :

Address :

Salvați modificările

Încărcați următoarea adresă URL în browserul web

http: // localhost: 3000 /

Ar trebui să puteți vedea cardul de client așa cum se arată în imaginea de mai jos

rezumat

  • MVC este un model arhitectural care împarte aplicația în trei componente majore
  • Modelul este responsabil pentru interacțiunea cu sursele de date
  • Controlerul ascultă solicitările de resurse primite de la utilizatori
  • În aplicațiile web, vizualizările conțin adesea HTML, CSS și opțional JavaScript
  • Un controler primește cererea de la utilizator, interacționează cu modelul bazei de date, dacă este necesar, apoi returnează rezultatul înapoi în browser sub formă de cod HTML