Š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 |
---|---|
![]() | 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;
|
![]() | 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;
|
![]() | 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;
|
![]() | To je moćan okvir koji je;
|
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 .= "";}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
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?
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:
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.