PHP MVC Framework Tutorial: CodeIgniter Exempel

Innehållsförteckning:

Anonim

Vad är PHP MVC-ramverk?

PHP MVC är ett applikationsdesignmönster som skiljer applikationsdata och affärslogik (modell) från presentationen (vy). MVC står för Model, View & Controller.

Styrenheten förmedlar mellan modeller och vyer.

Tänk på MVC-designmönstret som en bil och föraren.

Bilen har vindrutorna (vy) som föraren (styrenheten) använder för att övervaka trafiken framåt och sedan hastighet eller bromsa (modell) beroende på vad han ser framåt.

Varför använda PHP MVC Framework?

  • PHP MVC Frameworks förenklar arbetet med komplex teknik genom att;
    • Gömmer alla komplexa implementeringsdetaljer
    • Tillhandahåller standardmetoder som vi kan använda för att bygga våra applikationer.
    • Ökad utvecklarproduktivitet, detta beror på att basimplementeringen av aktiviteter som anslutning till databasen, sanering av användarinmatning etc. redan är delvis implementerade.
    • Överensstämmelse med professionella kodningsstandarder

I den här handledningen lär du dig-

  • PHP MVC designmönster
  • Typer av PHP MVC-ramverk
  • Portera opinionsundersökningsapplikationen till CodeIgniter
  • Databasinställningar
  • Skapa vår modell
  • Skapa våra åsikter
  • Testar vår ansökan

PHP MVC designmönster

Låt oss nu kort diskutera varje komponent i MVC-designmönstret.

Modell - den här delen avser affärslogiken och applikationsdata. Den kan användas för att utföra datavalideringar, bearbeta data och lagra den. Uppgifterna kan komma från;

  • platt fil
  • databas
  • XML-dokument
  • Andra giltiga datakällor.

Controller - detta är den del som handlar om användarnas begäran om resurser från servern.

Som ett exempel, när användarna begär webbadressen ... /index.php?products=list, kommer styrenheten att ladda produktmodellen för att hämta produktdata och sedan mata ut resultaten i listvyn.

I ett nötskal länkar styrenheten modellerna och vyerna tillsammans beroende på de begärda resurserna.

Visningar - denna del handlar om att presentera data för användaren. Detta är vanligtvis i form av HTML-sidor.

Typer av PHP MVC-ramverk

Att välja det bästa PHP-ramverket är en utmaning.

Du behöver inte skriva ditt eget ramverk för att dra nytta av fördelarna med MVC.

Du bör bara försöka skapa din egen MVC-relaterade applikationsdesign för att förstå hur MVC-ramar fungerar.

När du är bekväm med hur MVC-ramar fungerar, bör du gå vidare till de mogna och redan testade ramarna.

Tabellen nedan beskriver kort några av de populära php-ramarna och de funktioner som varje ram erbjuder.

Ramverk Beskrivning
CodeIgniter https://codeigniter.com/ Det är en av de mest populära PHP MVC-ramarna. Den är lätt och har en kort inlärningskurva. Den har en rik uppsättning bibliotek som hjälper till att bygga webbplatser och applikationer snabbt. Användare med begränsad kunskap om OOP-programmering kan också använda den. CodeIgniter-drivna applikationer inkluderar;
  • https://www.pyrocms.com/
  • http://www.shopigniter.com/
Kohana http://kohanaframework.org Det är en hierarkisk modellvisningskontroll HMVC säker och lätt ram. Den har en rik uppsättning komponenter för att snabbt utveckla applikationer. Företag som använder Kohana inkluderar;
  • https://go.wepay.com/
  • https://kids.nationalgeographic.com/
  • https://www.sittercity.com/
CakePHP www.cakephp.org Den är modellerad efter Ruby on rails. Det är känt för begrepp som mjukvarudesignmönster, konvention över konfiguration, ActiveRecord etc. CakePHP-drivna applikationer inkluderar;
  • http://invoicemachine.com/
  • http://www.fmylife.com/
www.framework.zend.com Zend Det är ett kraftfullt ramverk som är;
  • Säker, pålitlig, snabb och skalbar
  • Stöder Web 2.0 och skapande av webbtjänster.
Den har API: er från leverantörer som Amazon, Google, Flickr, Yahoo etc. Det är perfekt för att utveckla affärsapplikationer. Zend-drivna applikationer inkluderar;
  • Pimcore CMS,
  • DotKernel.
Företag som använder Zend-ramverket inkluderar;
  • BBC
  • Cisco
  • Webex
  • Offers.com

Portera opinionsundersökningsapplikationen till CodeIgniter

I den här handledningen skapade vi en PHP-omröstningsprogram. Här portar vi den koden till CodeIgniter

  • Ladda ner den senaste versionen av CodeIgniter från deras webbplats.
  • Extrahera innehållet i den zippade filen till din utvecklingskatalog i din webbserverkatalog. Vi kommer att använda ciopinionpoll som mappnamn i den här lektionen.
  • Bläddra till webbadressen http: // localhost / ciopinionpoll /

Vi ska nu överföra vår opinionsundersökningsansökan till CodeIgniter. Minns att vår ansökan var uppdelad i tre huvudkomponenter, nämligen;

  • Främre styrenhet - det här är den del som svarar på URL-förfrågningar och returnerar den begärda sidan. Den här koden kommer in i styrenheten
  • Modell - det här är koden som svarar på begärda data och returnerar begärda data. Den här koden kommer in i modellen
  • Visningar - det här är koden som ansvarar för formatering och visning av data. Den här koden kommer att visas
    • Bläddra till ciopinionpoll-mappen
    • Öppna filen database.php i katalogen application / config.
    • Leta reda på följande kodrader

Databasinställningar

  • Ställ in användarnamnet på root
  • Ställ in lösenordet till ditt root-lösenord för localhost
  • Databasnamn till opinion_poll. Observera att vi kommer att använda databasen som skapades i föregående lektion.
  • Spara ändringarna och stäng filen.

Skapa vår modell

Därefter ska vi skapa vår modell som kommer att utöka CI_Model. CI_Model är en del av CodeIgniter-biblioteken. Modellen finns i applikationen / 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);}}?>

HÄR,

  • “Klass Opinion_poll_model utökar CI_Model ...” är vår modell som utökar CI_Model
  • “... förälder :: __construct ();” ringer konstruktören CI_Model
  • “$ This-> load-> database ();” laddar databasbiblioteket så att vår applikation kan interagera med databasen
  • “$ This-> db->” är CodeIgniters aktiva post. Kontrollera den här länken för mer information om den aktiva posten.

Skapa vår controller Låt oss nu skapa controller. Vi kommer att använda standard CodeIgniter-kontrollenheten i applikationen / controllers / welcome.php. Ersätt dess källkoder med följande kod.

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

HÄR,

  • “Om (! Definierad ('BASEPATH')) exit ('Ingen direkt skriptåtkomst tillåten');" säkerställer att användare inte direkt får åtkomst till kontrollerklassen
  • “Klass Välkommen utökar CI_Controller ...” vår controller utökar CI_Controller-klassen
  • “Public function __construct ()” kallar CI_Controllers klasskonstruktionsmetod och laddar vår Opinion_poll_modell-modell
  • “Public function index ()…” är den funktion som mappas till index.php. den använder CodeIgniters ingångsklass för att kontrollera om en omröstning har skickats, lägg till den i databasen och visa sedan resultaten. Om postmatrisen för ingångsklassen är tom laddas den röstningssidan.
  • “$ This-> input-> post ('…')” är CodeIgniter-ingångsklassen som tar tag i innehållet i den globala variabeln $ _POST.
  • “$ This-> opinion_poll_model-> add_vote ($ this-> input-> post ('vote'))" kallar modellens add_vote-metod för att lägga till omröstningen i databasen.

Skapa våra åsikter

Kom ihåg från föregående exempel att vi hade två HTML-sidor, en för att rösta och en för resultat. Vi kommer att använda samma HTML-kod med minimala ändringar för att skapa våra åsikter. Skapa följande filer i applikation / vyer katalog

opinion_poll_form.phpJavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript Library?

JQuery
MooTools
YUI Library
Glow

Låt oss nu skapa resultatsidan 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

Testar vår ansökan

Förutsatt att rotkatalogen för din applikation är ciopinion, bläddra till http: // localhost / ciopionpoll /

Klicka på OK-knappen så visas följande varningsmeddelande

Rösta på din favoritkandidat och klicka sedan på OK. Du kommer att se följande resultatsida

Slutsats

CodeIgniter är ett enkelt att lära sig och använda PHP MVC-ramverk som kraftigt kan minska tiden som används för att utveckla applikationer.

Sammanfattning

  • En ram är en uppsättning bibliotek som tillhandahåller delvis genomförande av vanliga uppgifter.
  • PHP har ett antal mogna och testade MVC-ramar med öppen källkod.
  • En bra utvecklingsstrategi skiljer data från presentationen och uppmuntrar användningen av en enda ingångspunkt i en applikation.
  • Traditionella PHP-applikationer som följer bästa praxis för applikationsdesign kan överföras till MVC-ramar med minimala modifieringar.