PHP MVC Framework Tutorial: CodeIgniter Eksempel

Innholdsfortegnelse:

Anonim

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
CodeIgniter https://codeigniter.com/ 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;
  • https://www.pyrocms.com/
  • http://www.shopigniter.com/
Kohana http://kohanaframework.org 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;
  • https://go.wepay.com/
  • https://kids.nationalgeographic.com/
  • https://www.sittercity.com/
CakePHP www.cakephp.org 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;
  • http://invoicemachine.com/
  • http://www.fmylife.com/
www.framework.zend.com Zend Det er et kraftig rammeverk som er;
  • Sikker, pålitelig, rask og skalerbar
  • Støtter Web 2.0 og oppretting av webtjenester.
Den har API-er fra leverandører som Amazon, Google, Flickr, Yahoo osv. Den er ideell for utvikling av forretningsapplikasjoner. Zend-drevne applikasjoner inkluderer;
  • Pimcore CMS,
  • DotKernel.
Bedrifter som bruker Zend-rammeverket inkluderer;
  • BBC
  • Cisco
  • Webex
  • Offers.com

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

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?

JQuery
MooTools
YUI Library
Glow

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:

Return to voting page

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.