Ce este cadrul PHP MVC?
PHP MVC este un model de proiectare a aplicației care separă datele aplicației și logica de afaceri (model) de prezentare (vizualizare). MVC înseamnă Model, View & Controller.
Controlerul mediază între modele și vizualizări.
Gândiți-vă la modelul de design MVC ca la o mașină și la șofer.
Mașina are parbrizele (vedere) pe care șoferul (controlerul) le folosește pentru a monitoriza traficul înainte, apoi viteza sau frâna (modelul), în funcție de ceea ce vede în față.
De ce să folosiți PHP MVC Framework?
- Cadrele PHP MVC simplifică lucrul cu tehnologii complexe prin;
- Ascunderea tuturor detaliilor complexe de implementare
- Furnizarea de metode standard pe care le putem folosi pentru a ne construi aplicațiile.
- Creșterea productivității dezvoltatorilor, acest lucru se datorează faptului că implementarea de bază a activităților, cum ar fi conectarea la baza de date, igienizarea datelor introduse de utilizator etc.
- Respectarea standardelor profesionale de codificare
În acest tutorial, veți învăța-
- Model de proiectare PHP MVC
- Tipuri de cadru PHP MVC
- Portarea aplicației sondaj de opinie către CodeIgniter
- Setări de configurare a bazei de date
- Crearea modelului nostru
- Crearea opiniilor noastre
- Testarea aplicației noastre
Model de proiectare PHP MVC
Să discutăm acum pe scurt fiecare componentă a modelului de proiectare MVC.
Model - această parte se referă la logica de afaceri și la datele aplicației. Poate fi folosit pentru efectuarea validărilor de date, prelucrarea datelor și stocarea acestora. Datele pot proveni de la;
- fișier plat
- Bază de date
- Document XML
- Alte surse de date valabile.
Controler - aceasta este partea care tratează solicitările utilizatorilor de resurse de la server.
De exemplu, când utilizatorii solicită adresa URL ... /index.php?products=list, controlerul va încărca modelul produselor pentru a prelua datele produselor, apoi va afișa rezultatele în vizualizarea listă.
Pe scurt, controlerul leagă modelele și vizualizările împreună, în funcție de resursele solicitate.
Vizualizări - această parte se referă la prezentarea datelor către utilizator. Aceasta este de obicei sub formă de pagini HTML.
Tipuri de cadru PHP MVC
Alegerea celui mai bun cadru PHP este o provocare.
Nu trebuie să scrieți propriul cadru pentru a beneficia de avantajele MVC.
Ar trebui să încercați să creați propriul design de aplicație legat de MVC pentru a înțelege cum funcționează cadrele MVC.
Odată ce vă simțiți confortabil cu modul în care funcționează cadrele MVC, ar trebui să treceți la cadrele mature și deja testate.
Tabelul de mai jos descrie pe scurt câteva dintre cadrele php populare și caracteristicile pe care le oferă fiecare cadru.
Cadru | Descriere |
---|---|
CodeIgniter https://codeigniter.com/ | Este unul dintre cele mai populare framework-uri PHP MVC. Este ușor și are o curbă scurtă de învățare. Are un set bogat de biblioteci care vă ajută să construiți rapid site-uri web și aplicații. Utilizatorii cu cunoștințe limitate despre programarea OOP o pot folosi. Aplicațiile alimentate de CodeIgniter includ;
|
Kohana http://kohanaframework.org | Este un cadru securizat și ușor HMVC cu controler de vizualizare model ierarhic. Are un set bogat de componente pentru dezvoltarea rapidă a aplicațiilor. Companiile care folosesc Kohana includ;
|
CakePHP www.cakephp.org | Este modelat după Ruby pe șine. Este cunoscut pentru concepte precum modele de proiectare software, convenții asupra configurării, ActiveRecord etc. Aplicațiile alimentate de CakePHP includ;
|
www.framework.zend.com Zend | Este un cadru puternic care este;
|
Portarea aplicației sondaj de opinie către CodeIgniter
În acest tutorial, am creat o aplicație de sondaj PHP. Aici, vom transfera codul respectiv în CodeIgniter
- Descărcați cea mai recentă versiune a CodeIgniter de pe site-ul lor web.
- Extrageți conținutul fișierului comprimat în directorul de dezvoltare din directorul serverului web. Vom folosi ciopinionpoll ca nume de folder în această lecție.
- Navigați la adresa URL http: // localhost / ciopinionpoll /
Acum vom transfera aplicația noastră de sondaj de opinie către CodeIgniter. Reamintim că aplicația noastră a fost împărțită în trei componente majore și anume;
- Controler frontal - aceasta este partea care răspunde solicitărilor URL și returnează pagina solicitată. Acest cod va intra în controler
- Model - acesta este codul care răspunde la datele solicitate și returnează datele solicitate. Acest cod va intra în model
- Vizualizări - acesta este codul responsabil pentru formatarea și afișarea datelor. Acest cod va intra în vizualizare
- Navigați la folderul ciopinionpoll
- Deschideți fișierul database.php aflat în directorul application / config.
- Găsiți următoarele linii de cod
Setări de configurare a bazei de date
- Setați numele de utilizator pentru root
- Setați parola la parola de root localhost
- Numele bazei de date către opinion_poll. Rețineți că vom folosi baza de date creată în lecția anterioară.
- Salvați modificările și închideți fișierul.
Crearea modelului nostru
În continuare, vom crea modelul nostru care va extinde modelul CI_Model. CI_Model face parte din bibliotecile CodeIgniter. Modelul va fi localizat în application / models opinion_poll_model.php
load->database();}public function total_votes(){$query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries');return $query->row()->choices_count;}public function get_results(){$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");$table_rows = '';for ($i = 1; $i < 5; $i++){$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt); $table_rows .= "";}public function add_vote($choice){$ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data);}}?> " . $ libraries [$i] . " Got: " . $result[0] . " votes
AICI,
- „Clasa Opinion_poll_model extinde CI_Model ...” este modelul nostru care extinde CI_Model
- „... părinte :: __construct ();” apelează constructorul CI_Model
- „$ This-> load-> database ();” încarcă biblioteca bazei de date astfel încât aplicația noastră să poată interacționa cu baza de date
- „$ This-> db->” este înregistrarea activă a CodeIgniter. Consultați acest link pentru mai multe informații despre înregistrarea activă.
Crearea controlerului nostru Să creăm acum controlerul. Vom folosi controlerul implicit CodeIgniter situat în application / controllers / welcome.php. Înlocuiți codurile sursă cu următorul cod.
load->model('opinion_poll_model');}public function index() {if ($this->input->post('submitbutton') && !$this->input->post('vote')) {echo "";}if ($this->input->post('vote')) {$this->opinion_poll_model->add_vote($this->input->post('vote'));$data['total_votes'] = $this->opinion_poll_model->total_votes();$data['rows'] = $this->opinion_poll_model->get_results();$this->load->view('results', $data);} else {$this->load->view('opinion_poll_form');}}}/* End of file welcome.php *//* Location: ./application/controllers/welcome.php */?>
AICI,
- „If (! Defined ('BASEPATH')) exit („ Nu este permis accesul direct la script ”);” asigură că utilizatorii nu accesează direct clasa controlerului
- „Clasa Welcome extinde CI_Controller ...” controlerul nostru extinde clasa CI_Controller
- „Funcția publică __construct ()” apelează metoda controlorului de clasă CI_Controller și încarcă modelul nostru Opinion_poll_model
- „Index funcție publică ()…” este funcția care se mapează la index.php. folosește clasa de intrare CodeIgniter pentru a verifica dacă a fost trimis un vot, adăugați-l la baza de date, apoi afișați rezultatele. Dacă matricea de postare a clasei de intrare este goală, aceasta încarcă pagina de vot.
- „$ This-> input-> post ('…')” este clasa de intrare CodeIgniter care captează conținutul variabilei globale $ _POST.
- „$ This-> opinion_poll_model-> add_vote ($ this-> input-> post ('vote'))” apelează metoda add_vote a modelului pentru a adăuga votul în baza de date.
Crearea opiniilor noastre
Reamintim din exemplul anterior că am avut două pagini HTML, una pentru vot și cealaltă pentru rezultate. Vom folosi același cod HTML cu modificări minime pentru a ne crea vizualizările. Creați următoarele fișiere în directorul aplicații / vizualizări
opinion_poll_form.phpJavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript Library?
Să creăm acum pagina de rezultate results.php
JavaScript Libraries - Opinion Poll Results JavaScript Libraries - Opinion Poll Results
What is your favorite JavaScript Library?
people have thus far taken part in this poll:
Testarea aplicației noastre
Presupunând că directorul rădăcină al aplicației dvs. este ciopinion, navigați la http: // localhost / ciopionpoll /
Faceți clic pe butonul OK, veți vedea următorul mesaj de alertă
Votează pentru candidatul tău preferat, apoi dă clic pe OK Veți vedea următoarea pagină cu rezultate
Concluzie
CodeIgniter este un framework PHP MVC ușor de învățat și de utilizat, care poate reduce foarte mult timpul petrecut dezvoltând aplicații.
rezumat
- Un cadru este un set de biblioteci care oferă implementarea parțială a sarcinilor comune.
- PHP are o serie de cadre MVC mature și testate open source.
- O abordare de dezvoltare bună separă datele de prezentare și încurajează utilizarea unui singur punct de intrare într-o aplicație.
- Aplicațiile tradiționale PHP care respectă cele mai bune practici de proiectare a aplicațiilor pot fi portate în cadrul MVC cu modificări minime.