Kaj je ogrodje PHP MVC?
PHP MVC je vzorec zasnove aplikacije, ki ločuje podatke aplikacije in poslovno logiko (model) od predstavitve (pogleda). MVC je kratica za Model, View & Controller.
Krmilnik posreduje med modeli in pogledi.
Oblikovalski vzorec MVC si predstavljajte kot avtomobil in voznika.
Avto ima vetrobranska stekla (pogled), ki jih voznik (krmilnik) uporablja za nadzor prometa naprej in nato hitrosti ali zaviranja (model), odvisno od tega, kaj vidi naprej.
Zakaj uporabljati PHP MVC Framework?
- PHP MVC Frameworks poenostavljajo delo s kompleksnimi tehnologijami z;
- Skrivanje vseh zapletenih podrobnosti izvedbe
- Zagotavljanje standardnih metod, ki jih lahko uporabimo za izdelavo naših aplikacij.
- Povečana produktivnost razvijalcev je zato, ker je osnovno izvajanje dejavnosti, kot so povezovanje z bazo podatkov, sanacija uporabniškega vnosa itd., Že delno izvedeno.
- Spoštovanje profesionalnih standardov kodiranja
V tej vadnici boste izvedeli-
- Vzorec oblikovanja PHP MVC
- Vrste PHP MVC ogrodja
- Prenos aplikacije za anketo na CodeIgniter
- Nastavitve konfiguracije zbirke podatkov
- Ustvarjanje našega modela
- Ustvarjanje naših pogledov
- Testiranje naše aplikacije
Vzorec oblikovanja PHP MVC
Zdaj pa na kratko razpravljajmo o vsaki komponenti vzorca oblikovanja MVC.
Model - ta del se ukvarja s poslovno logiko in podatki aplikacije. Uporablja se lahko za preverjanje veljavnosti podatkov, obdelavo in shranjevanje podatkov. Podatki lahko prihajajo iz;
- ravna datoteka
- zbirka podatkov
- Dokument XML
- Drugi veljavni viri podatkov.
Krmilnik - ta del obravnava zahteve uporabnikov za vire s strežnika.
Na primer, ko uporabniki zahtevajo URL… /index.php?products=list, bo krmilnik naložil model izdelkov za pridobivanje podatkov o izdelkih, nato pa rezultate prikazal v pogledu seznama.
Na kratko krmilnik poveže modele in poglede skupaj, odvisno od zahtevanih virov.
Pogledi - ta del obravnava predstavitev podatkov uporabniku. Običajno je v obliki strani HTML.
Vrste PHP MVC ogrodja
Izbrati najboljši okvir PHP je izziv.
Ni vam treba pisati lastnega okvira, da bi izkoristili prednosti MVC.
Poskusite ustvariti samo lastno zasnovo aplikacije, povezano z MVC, da boste razumeli, kako delujejo okviri MVC.
Ko se počutite dobro, kako delujejo okviri MVC, preidite na zrele in že preizkušene okvire.
Spodnja tabela na kratko opisuje nekatere priljubljene okvire php in funkcije, ki jih ponuja vsak okvir.
Okvir | Opis |
---|---|
CodeIgniter https://codeigniter.com/ | Je eden izmed najbolj priljubljenih okvirov PHP MVC. Je lahek in ima kratko učno krivuljo. Ima bogat nabor knjižnic, ki pomagajo hitro graditi spletna mesta in aplikacije. Uporabniki, ki imajo omejeno znanje o programiranju OOP, ga lahko tudi uporabljajo. Aplikacije, ki jih poganja CodeIgniter, vključujejo;
|
Kohana http://kohanaframework.org | To je varen in lahek okvir HMVC Hierarchical Model View Controller. Ima bogat nabor komponent za hiter razvoj aplikacij. Podjetja, ki uporabljajo Kohano, vključujejo;
|
CakePHP www.cakephp.org | Po vzoru je Ruby na tirnicah. Znan je po konceptih, kot so vzorci oblikovanja programske opreme, dogovor o konfiguraciji, ActiveRecord itd.
|
www.framework.zend.com Zend | To je močan okvir, ki je;
|
Prenos aplikacije za anketo na CodeIgniter
V tej vadnici smo ustvarili aplikacijo za ankete PHP. Tu bomo to kodo prenesli v CodeIgniter
- Prenesite najnovejšo različico CodeIgniter z njihove spletne strani.
- Izvlecite vsebino stisnjene datoteke v svoj razvojni imenik v imeniku spletnega strežnika. V tej lekciji bomo kot ime mape uporabili ciopinionpoll.
- Poiščite URL http: // localhost / ciopinionpoll /
Zdaj bomo svojo aplikacijo javnomnenjske ankete prenesli na CodeIgniter. Spomnimo se, da je bila naša aplikacija razdeljena na tri glavne komponente, in sicer;
- Sprednji krmilnik - to je del, ki se odzove na zahteve za URL in vrne zahtevano stran. Ta koda bo šla v krmilnik
- Model - to je koda, ki se odzove na zahtevane podatke in vrne zahtevane podatke. Ta koda bo vključena v model
- Pogledi - to je koda, ki je odgovorna za oblikovanje in prikaz podatkov. Ta koda bo prikazana
- Poiščite mapo ciopinionpoll
- Odprite datoteko database.php, ki se nahaja v imeniku application / config.
- Poiščite naslednje vrstice kode
Nastavitve konfiguracije zbirke podatkov
- Uporabniško ime nastavite na root
- Geslo nastavite na korensko geslo localhost
- Ime zbirke podatkov v anketi mnenja. Upoštevajte, da bomo uporabili bazo podatkov, ustvarjeno v prejšnji lekciji.
- Shranite spremembe in zaprite datoteko.
Ustvarjanje našega modela
Nato bomo ustvarili svoj model, ki bo razširil CI_Model. CI_Model je del knjižnic CodeIgniter. Model se nahaja v aplikaciji / 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
TUKAJ,
- “Razred Opinion_poll_model razširja CI_Model ...” je naš model, ki razširja CI_Model
- “… Nadrejeni :: __construct ();” pokliče konstruktor CI_Model
- "$ This-> load-> database ();" naloži knjižnico zbirke podatkov, tako da lahko naša aplikacija sodeluje z bazo podatkov
- “$ This-> db->” je aktivni zapis CodeIgniterja. Za več informacij o aktivnem zapisu preverite to povezavo.
Ustvarjanje našega krmilnika Ustvarimo zdaj krmilnik. Uporabili bomo privzeti krmilnik CodeIgniter, ki se nahaja v application / controllers / welcome.php. Zamenjajte njegove izvorne kode z naslednjo kodo.
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 */?>
TUKAJ,
- "Če (! Definirano ('BASEPATH')) izhod ('ni dovoljen neposreden dostop do skripta');" zagotavlja, da uporabniki ne dostopajo neposredno do razreda krmilnika
- “Razred dobrodošlice razširja CI_Controller ...” naš krmilnik razširja razred CI_Controller
- “Javna funkcija __construct ()” pokliče metodo izvajalca razreda CI_Controller in naloži naš model Opinion_poll_model
- »Indeks javne funkcije () ...« je funkcija, ki preslika na index.php. z vhodnim razredom CodeIgniter preveri, ali je bil oddan glas, ga doda v bazo podatkov in prikaže rezultate. Če je polje objav vhodnega razreda prazno, se naloži stran za glasovanje.
- “$ This-> input-> post ('...')” je vhodni razred CodeIgniter, ki zajema vsebino globalne spremenljivke $ _POST.
- “$ This-> opinion_poll_model-> add_vote ($ this-> input-> post ('vote'))” pokliče model add_vote modela, da doda glas v bazo podatkov.
Ustvarjanje naših pogledov
Spomnimo se iz prejšnjega primera, da smo imeli dve strani HTML, eno za glasovanje in drugo za rezultate. Za ustvarjanje svojih pogledov bomo uporabili isto kodo HTML z minimalnimi spremembami. V imeniku aplikacij / pogledov ustvarite naslednje datoteke
opinion_poll_form.phpJavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript Library?
Ustvarimo zdaj stran z rezultati 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 aplikacije
Če predpostavimo, da je korenski imenik vaše aplikacije ciopinion, pojdite na http: // localhost / ciopionpoll /
Kliknite gumb V redu, prikazalo se bo naslednje opozorilno sporočilo
Glasujte za svojega najljubšega kandidata in kliknite V redu. Videli boste naslednjo stran z rezultati
Zaključek
CodeIgniter je enostaven za učenje in uporabo ogrodja PHP MVC, ki lahko močno zmanjša čas, porabljen za razvoj aplikacij.
Povzetek
- Okvir je sklop knjižnic, ki zagotavljajo delno izvajanje skupnih nalog.
- PHP ima številne odprtokodne zrele in preizkušene okvire MVC.
- Dober razvojni pristop ločuje podatke od predstavitve in spodbuja uporabo ene same vstopne točke v aplikacijo.
- Tradicionalne aplikacije PHP, ki sledijo najboljšim praksam pri načrtovanju aplikacij, je mogoče z minimalnimi spremembami prenesti v ogrodja MVC.