Hva er PHP MVC framework?
PHP MVC er et mønster for applikasjonsdesign som skiller applikasjonsdata og forretningslogikk (modell) fra presentasjonen (visning). MVC står for Model, View & Controller.
Kontrolleren formidler mellom modellene og visningene.
Tenk på MVC-mønsteret som en bil og sjåføren.
Bilen har frontruter (visning) som sjåføren (kontrolleren) bruker til å overvåke trafikken fremover, deretter hastighet eller bremsing (modell) avhengig av hva han ser fremover.
Hvorfor bruke PHP MVC Framework?
- PHP MVC Frameworks forenkler arbeidet med komplekse teknologier ved;
- Skjuler alle komplekse implementeringsdetaljer
- Tilby standardmetoder som vi kan bruke til å bygge applikasjonene våre.
- Økt utviklerproduktivitet, dette er fordi basisimplementeringen av aktiviteter som å koble til databasen, desinfisere brukerinngang osv. Allerede er delvis implementert.
- Overholdelse av profesjonelle kodestandarder
I denne veiledningen vil du lære-
- PHP MVC designmønster
- Typer av PHP MVC-rammeverk
- Overfører meningsmålingssøknaden til CodeIgniter
- Databasekonfigurasjonsinnstillinger
- Å skape vår modell
- Å skape våre synspunkter
- Testing av søknaden vår
PHP MVC designmønster
La oss nå kort diskutere hver komponent i MVC-mønsteret.
Modell - denne delen er opptatt av forretningslogikken og applikasjonsdataene. Den kan brukes til å utføre datavalideringer, behandle data og lagre dem. Dataene kan komme fra;
- flat fil
- database
- XML-dokument
- Andre gyldige datakilder.
Controller - dette er den delen som omhandler brukernes forespørsler om ressurser fra serveren.
Som et eksempel, når brukerne ber om URL ... /index.php?products=list, vil kontrolleren laste inn produktmodellen for å hente produktdataene og deretter levere resultatene i listevisningen.
I et nøtteskall kobler kontrolleren modellene og visningene sammen, avhengig av de forespurte ressursene.
Visninger - denne delen handler om å presentere dataene for brukeren. Dette er vanligvis i form av HTML-sider.
Typer av PHP MVC-rammeverk
Å velge det beste PHP-rammeverket er en utfordring.
Du trenger ikke å skrive ditt eget rammeverk for å dra nytte av fordelene med MVC.
Du bør bare prøve å lage din egen MVC-relaterte applikasjonsdesign for å forstå hvordan MVC-rammer fungerer.
Når du er komfortabel med måten MVC-rammer fungerer på, bør du gå videre til de modne og allerede testede rammene.
Tabellen nedenfor beskriver kort noen av de populære php-rammene og funksjonene som hvert rammeverk tilbyr.
Rammeverk | Beskrivelse |
---|---|
![]() | Det er en av de mest populære PHP MVC-rammene. Den er lett og har en kort læringskurve. Den har et rikt sett med biblioteker som hjelper med å bygge nettsteder og applikasjoner raskt. Brukere med begrenset kunnskap om OOP-programmering kan også bruke den. CodeIgniter-drevne applikasjoner inkluderer;
|
![]() | Det er en hierarkisk Model View Controller HMVC sikker og lett ramme. Den har et rikt sett med komponenter for å utvikle applikasjoner raskt. Bedrifter som bruker Kohana inkluderer;
|
![]() | Den er modellert etter Ruby på skinner. Det er kjent for begreper som designmønstre for programvare, konvensjon over konfigurasjon, ActiveRecord osv. CakePHP-drevne applikasjoner inkluderer;
|
![]() | Det er et kraftig rammeverk som er;
|
Overfører meningsmålingssøknaden til CodeIgniter
I denne opplæringen opprettet vi et PHP-avstemningsapplikasjon. Her vil vi portere den koden til CodeIgniter
- Last ned den nyeste versjonen av CodeIgniter fra deres hjemmeside.
- Pakk ut innholdet i den zippede filen til utviklingskatalogen i webserverkatalogen. Vi vil bruke ciopinionpoll som mappenavn i denne leksjonen.
- Bla til URL http: // localhost / ciopinionpoll /
Vi skal nå portere vår meningsmåling til CodeIgniter. Husk at søknaden vår var delt inn i tre hovedkomponenter, nemlig;
- Frontkontroller - dette er den delen som svarer på URL-forespørsler og returnerer den forespurte siden. Denne koden vil gå inn i kontrolleren
- Modell - dette er koden som svarer på forespurte data og returnerer de forespurte dataene. Denne koden vil gå inn i modellen
- Visninger - dette er koden som er ansvarlig for formatering og visning av dataene. Denne koden vil gå inn i visningen
- Bla til ciopinionpoll-mappen
- Åpne database.php-filen i applikasjons- / konfigurasjonsmappen.
- Finn følgende kodelinjer
Databasekonfigurasjonsinnstillinger
- Sett brukernavnet til root
- Sett passordet til lokalpassordet ditt
- Databasenavn til opinion_poll. Merk at vi bruker databasen som ble opprettet i forrige leksjon.
- Lagre endringene og lukk filen.
Å skape vår modell
Deretter skal vi lage vår modell som vil utvide CI_Model. CI_Model er en del av CodeIgniter-bibliotekene. Modellen vil bli plassert i applikasjonen / modeller 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
HER,
- “Klasse Opinion_poll_model utvider CI_Model ...” er vår modell som utvider CI_Model
- “... foreldre :: __construct ();” kaller CI_Model-konstruktøren
- “$ This-> load-> database ();” laster databasebiblioteket slik at applikasjonen vår kan samhandle med databasen
- “$ This-> db->” er CodeIgniters aktive post. Sjekk denne lenken for mer informasjon om den aktive posten.
Opprette kontrolleren La oss nå opprette kontrolleren. Vi bruker standard CodeIgniter-kontrolleren i applikasjonen / controllers / welcome.php. Erstatt kildekodene med følgende kode.
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 */?>
HER,
- “Hvis (! Definert ('BASEPATH')) exit ('Ingen direkte skripttilgang tillatt');" sørger for at brukerne ikke får direkte tilgang til kontrollerklassen
- “Klasse Velkomst utvider CI_Controller…” vår kontroller utvider CI_Controller klassen
- “Public function __construct ()” kaller CI_Controllers klassekonstruksjonsmetode og laster vår Opinion_poll_model-modell
- “Public function index ()…” er funksjonen som tilordnes til index.php. den bruker CodeIgniters inngangsklasse for å sjekke om det er sendt inn en stemme, legge den til databasen og deretter vise resultatene. Hvis postoppstillingen til inngangsklassen er tom, laster den inn stemmesiden.
- “$ This-> input-> post ('…')” er CodeIgniter-inngangsklassen som tar tak i innholdet i den globale variabelen $ _POST.
- “$ This-> opinion_poll_model-> add_vote ($ this-> input-> post ('vote'))" kaller modellens add_vote-metode for å legge til stemmen i databasen.
Å skape våre synspunkter
Husk fra forrige eksempel at vi hadde to HTML-sider, en for avstemning og en for resultater. Vi vil bruke den samme HTML-koden med minimale modifikasjoner for å lage våre synspunkter. Opprett følgende filer i katalogen for applikasjoner / visninger
opinion_poll_form.phpJavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript Library?
La oss nå opprette resultatsiden 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:
Testing av søknaden vår
Forutsatt at rotkatalogen til applikasjonen din er ciopinion, blar du til http: // localhost / ciopionpoll /
Klikk på OK-knappen, du vil se følgende varselmelding
Stem på din favorittkandidat, og klikk deretter på OK. Du vil se følgende resultatside
Konklusjon
CodeIgniter er et enkelt å lære og bruke PHP MVC-rammeverk som kan redusere tiden brukt på å utvikle applikasjoner.
Sammendrag
- Et rammeverk er et sett med biblioteker som gir delvis gjennomføring av vanlige oppgaver.
- PHP har en rekke open source modne og testede MVC-rammer.
- En god tilnærming til utvikling skiller dataene fra presentasjonen og oppfordrer til bruk av ett enkelt inngangspunkt i en applikasjon.
- Tradisjonelle PHP-applikasjoner som følger beste praksis for applikasjonsdesign, kan overføres til MVC-rammer med minimale modifikasjoner.