Vodič za PHP MVC Framework: Primjer CodeIgniter

Sadržaj:

Anonim

Što je PHP MVC okvir?

PHP MVC je obrazac dizajna aplikacije koji razdvaja podatke aplikacije i poslovnu logiku (model) od prezentacije (pogleda). MVC je kratica za Model, View & Controller.

Kontroler posreduje između modela i prikaza.

Zamislite MVC dizajn kao model automobila i vozača.

Automobil ima vjetrobranska stakla (pogled) koje vozač (kontrolor) koristi za nadzor prometa ispred, a zatim brzine ili kočenja (model), ovisno o onome što vidi ispred.

Zašto koristiti PHP MVC Framework?

  • PHP MVC Frameworks pojednostavljuju rad sa složenim tehnologijama;
    • Sakrivanje svih složenih detalja implementacije
    • Pružanje standardnih metoda koje možemo koristiti za izgradnju naših aplikacija.
    • Povećana produktivnost programera, to je zato što su osnovna implementacija aktivnosti poput povezivanja s bazom podataka, sanacije korisničkog unosa itd. Već djelomično implementirane.
    • Poštivanje profesionalnih standarda kodiranja

U ovom vodiču naučit ćete-

  • Uzorak dizajna PHP MVC
  • Vrste PHP MVC okvira
  • Prenošenje aplikacije za ispitivanje javnog mnijenja na CodeIgniter
  • Postavke konfiguracije baze podataka
  • Stvaranje našeg modela
  • Stvaranje naših pogleda
  • Testiranje naše prijave

Uzorak dizajna PHP MVC

Krenimo sada ukratko o svakoj komponenti uzorka dizajna MVC.

Model - ovaj se dio bavi poslovnom logikom i podacima aplikacije. Može se koristiti za provjeru valjanosti podataka, obradu i pohranu podataka. Podaci mogu potjecati iz;

  • ravna turpija
  • baza podataka
  • XML dokument
  • Ostali valjani izvori podataka.

Kontrolor - ovo je dio koji se bavi zahtjevima korisnika za resursima s poslužitelja.

Na primjer, kada korisnici zatraže URL ... /index.php?products=list, kontroler će učitati model proizvoda da bi dohvatio podatke o proizvodima, a zatim rezultate prikazati u prikazu popisa.

Ukratko, upravljač povezuje modele i poglede zajedno, ovisno o traženim resursima.

Pogledi - ovaj se dio bavi predstavljanjem podataka korisniku. To je obično u obliku HTML stranica.

Vrste PHP MVC okvira

Odabir najboljeg PHP okvira je izazov.

Ne morate pisati vlastiti okvir da biste iskoristili prednosti MVC-a.

Trebali biste pokušati izraditi vlastiti dizajn aplikacija koji se odnosi na MVC kako biste razumjeli kako MVC okviri rade.

Jednom kada se ugodno upoznate s načinom rada MVC okvira, trebali biste prijeći na zrele i već testirane okvire.

Tablica u nastavku ukratko opisuje neke od popularnih php okvira i značajke koje svaki okvir nudi.

Okvir Opis
CodeIgniter https://codeigniter.com/ To je jedan od najpopularnijih PHP MVC okvira. Lagan je i ima kratku krivulju učenja. Ima bogat skup knjižnica koje pomažu u brzoj izgradnji web stranica i aplikacija. Korisnici s ograničenim znanjem o OOP programiranju također ga mogu koristiti. Aplikacije s pogonom CodeIgniter uključuju;
  • https://www.pyrocms.com/
  • http://www.shopigniter.com/
Kohana http://kohanaframework.org Riječ je o hijerarhijskom modelu View View Controller HMVC sigurnom i laganom okviru. Ima bogat skup komponenata za brzi razvoj aplikacija. Tvrtke koje koriste Kohanu uključuju;
  • https://go.wepay.com/
  • https://kids.nationalgeographic.com/
  • https://www.sittercity.com/
CakePHP www.cakephp.org Po uzoru je na Ruby na šinama. Poznat je po konceptima kao što su obrasci dizajna softvera, dogovor oko konfiguracije, ActiveRecord itd. Aplikacije s pogonom na CakePHP uključuju;
  • http://invoicemachine.com/
  • http://www.fmylife.com/
www.framework.zend.com Zend To je moćan okvir koji je;
  • Sigurno, pouzdano, brzo i skalabilno
  • Podržava Web 2.0 i stvaranje web usluga.
Sadrži API-je dobavljača poput Amazona, Googlea, Flickra, Yahooa itd. Idealno je za razvoj poslovnih aplikacija. Aplikacije koje pokreće Zend uključuju;
  • Pimcore CMS,
  • DotKernel.
Tvrtke koje koriste Zendov okvir uključuju;
  • BBC
  • Cisco
  • Webex
  • Ponude.com

Prenošenje aplikacije za ispitivanje javnog mnijenja na CodeIgniter

U ovom uputstvu izradili smo aplikaciju za PHP ankete. Ovdje ćemo taj kod prenijeti na CodeIgniter

  • Preuzmite najnoviju verziju CodeIgniter s njihove web stranice.
  • Izdvojite sadržaj zip datoteke u svoj razvojni direktorij u direktoriju web poslužitelja. U ovoj ćemo lekciji koristiti naziv ciopinionpoll kao naziv mape.
  • Dođite do URL-a http: // localhost / ciopinionpoll /

Sada ćemo prenijeti aplikaciju za istraživanje javnog mnijenja na CodeIgniter. Podsjetimo da je naša aplikacija bila podijeljena u tri glavne komponente, a to su;

  • Prednji kontroler - ovo je dio koji odgovara na zahtjeve za URL-om i vraća traženu stranicu. Ovaj će kôd ući u kontroler
  • Model - ovo je kod koji odgovara na tražene podatke i vraća tražene podatke. Ovaj kod ući će u model
  • Pogledi - ovo je kod odgovoran za formatiranje i prikaz podataka. Ovaj će kôd ući u prikaz
    • Otvorite mapu ciopinionpoll
    • Otvorite datoteku database.php koja se nalazi u direktoriju application / config.
    • Pronađite sljedeće retke koda

Postavke konfiguracije baze podataka

  • Postavite korisničko ime na root
  • Postavite lozinku na lokalnu root lozinku
  • Naziv baze podataka za anketu_omisljenja. Napomena: koristit ćemo bazu podataka stvorenu u prethodnoj lekciji.
  • Spremite promjene i zatvorite datoteku.

Stvaranje našeg modela

Dalje ćemo stvoriti naš model koji će proširiti CI_Model. CI_Model je dio knjižnica CodeIgniter. Model će se nalaziti u 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 .= "
" . $ libraries [$i] . " Got:" . $result[0] . " votes

";}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);}}?>

OVDJE,

  • "Klasa Opinion_poll_model proširuje CI_Model ..." je naš model koji proširuje CI_Model
  • “... roditelj :: __construct ();” poziva konstruktor CI_Model
  • “$ This-> load-> database ();” učitava biblioteku baze podataka tako da naša aplikacija može komunicirati s bazom podataka
  • “$ This-> db->” je aktivni zapis CodeIgnitera. Pogledajte ovu vezu za više informacija o aktivnom zapisu.

Stvaranje našeg kontrolera Izradimo sada kontroler. Upotrijebit ćemo zadani CodeIgniter kontroler smješten u application / controllers / welcome.php. Zamijenite njegove izvorne kodove sljedećim kodom.

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 */?>

OVDJE,

  • “If (! Definirano ('BASEPATH')) exit ('Nije dopušten izravni pristup skripti');" osigurava da korisnici ne pristupe izravno klasi kontrolera
  • “Klasa dobrodošlice proširuje CI_Controller ...” naš kontroler proširuje klasu CI_Controller
  • “Javna funkcija __construct ()” poziva metodu izvođenja klase CI_Controller i učitava naš model Opinion_poll_model
  • "Indeks javne funkcije () ..." je funkcija koja se preslikava na index.php. koristi klasu unosa CodeIgniter da provjeri je li glasovanje dostavljeno, doda ga u bazu podataka i prikazuje rezultate. Ako je polje postova ulazne klase prazno, učitava stranicu za glasanje.
  • “$ This-> input-> post ('...')” je klasa unosa CodeIgniter koja grabi sadržaj globalne varijable $ _POST.
  • “$ This-> opinion_poll_model-> add_vote ($ this-> input-> post ('vote'))” poziva metodu add_vote modela za dodavanje glasa u bazu podataka.

Stvaranje naših pogleda

Sjetimo se iz prethodnog primjera da smo imali dvije HTML stranice, jednu za glasanje, a drugu za rezultate. Upotrijebit ćemo isti HTML kôd s minimalnim izmjenama kako bismo stvorili svoje poglede. Stvorite sljedeće datoteke u direktoriju aplikacija / pogleda

opinion_poll_form.phpJavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript Library?

JQuery
MooTools
YUI Library
Glow

Stvorimo sada stranicu rezultata 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:

Return to voting page

Testiranje naše prijave

Pod pretpostavkom da je korijenski direktorij vaše aplikacije ciopinion, pregledajte http: // localhost / ciopionpoll /

Kliknite gumb U redu, vidjet ćete sljedeću poruku upozorenja

Glasajte za svog omiljenog kandidata, a zatim kliknite U redu Vidjet ćete sljedeću stranicu s rezultatima

Zaključak

CodeIgniter jednostavan je za naučiti i koristiti PHP MVC okvir koji može uvelike smanjiti vrijeme provedeno u razvoju aplikacija.

Sažetak

  • Okvir je skup knjižnica koji pružaju djelomičnu provedbu zajedničkih zadataka.
  • PHP ima niz otvorenih izvornih i testiranih MVC okvira.
  • Dobar razvojni pristup odvaja podatke od prezentacije i potiče upotrebu jedne ulazne točke u aplikaciju.
  • Tradicionalne PHP aplikacije koje slijede najbolje primjere iz dizajna aplikacija mogu se prenijeti na MVC okvire s minimalnim izmjenama.