Výukový program pre PHP MVC Framework: Príklad CodeIgniter

Obsah:

Anonim

Čo je to rámec PHP MVC?

PHP MVC je vzor návrhu aplikácie, ktorý oddeľuje údaje aplikácie a obchodnú logiku (model) od prezentácie (pohľadu). MVC je skratka pre Model, View & Controller.

Ovládač sprostredkováva medzi modelmi a zobrazeniami.

Predstavte si návrhový vzor MVC ako auto a vodiča.

Auto má čelné sklá (výhľad), ktoré vodič (ovládač) používa na sledovanie premávky vpredu, potom na rýchlosť alebo brzdenie (model) v závislosti od toho, čo vidí pred sebou.

Prečo používať PHP MVC Framework?

  • Rámečky PHP MVC zjednodušujú prácu so zložitými technológiami o;
    • Skrýva všetky zložité podrobnosti implementácie
    • Poskytovanie štandardných metód, ktoré môžeme použiť na zostavenie našich aplikácií.
    • Zvýšená produktivita vývojárov, je to preto, že základná implementácia aktivít, ako je pripojenie k databáze, dezinfekcia vstupov používateľov atď., Je už čiastočne implementovaná.
    • Dodržiavanie profesionálnych štandardov kódovania

V tomto návode sa naučíte

  • Dizajnový vzor PHP MVC
  • Typy rámca PHP MVC
  • Prenesenie aplikácie prieskumu verejnej mienky na CodeIgniter
  • Konfiguračné nastavenia databázy
  • Vytváranie nášho modelu
  • Vytváranie našich názorov
  • Testovanie našej aplikácie

Dizajnový vzor PHP MVC

Poďme teraz v krátkosti rozobrať každú súčasť návrhového vzoru MVC.

Model - táto časť sa zaoberá obchodnou logikou a údajmi o aplikácii. Môže sa použiť na vykonávanie validácie údajov, spracovanie údajov a ich ukladanie. Údaje môžu pochádzať z;

  • plochý pilník
  • databázy
  • XML dokument
  • Ostatné platné zdroje údajov.

Kontrolór - táto časť sa zaoberá požiadavkami používateľov na zdroje zo servera.

Napríklad, keď používatelia požadujú adresu URL ... /index.php?products=list, kontrolér načíta produktový model, aby získal údaje o produktoch, a potom výstup výsledkov do zoznamu.

Stručne povedané, radič spája modely a zobrazenia v závislosti od požadovaných zdrojov.

Zobrazenia - táto časť sa zaoberá prezentáciou údajov používateľovi. Spravidla je to vo forme stránok HTML.

Typy rámca PHP MVC

Vybrať najlepší rámec PHP je výzva.

Aby ste mohli využívať výhody MVC, nemusíte si písať svoj vlastný rámec.

Mali by ste sa iba pokúsiť vytvoriť svoj vlastný návrh aplikácie súvisiace s MVC, aby ste pochopili, ako fungujú rámce MVC.

Keď sa dozviete, ako fungujú rámce MVC, mali by ste prejsť na vyspelé a už otestované rámce.

Nasledujúca tabuľka stručne popisuje niektoré populárne php rámce a funkcie, ktoré každý rámec ponúka.

Rámca Popis
CodeIgniter https://codeigniter.com/ Je to jeden z najpopulárnejších rámcov PHP MVC. Je ľahký a má krátku krivku učenia. Má bohatú sadu knižníc, ktoré pomáhajú rýchlo vytvárať webové stránky a aplikácie. Používať ho môžu aj používatelia s obmedzenými znalosťami programovania OOP. Medzi aplikácie poháňané technológiou CodeIgniter patria;
  • https://www.pyrocms.com/
  • http://www.shopigniter.com/
Kohana http://kohanaframework.org Je to bezpečný a ľahký rámec Hierarchical Model View Controller HMVC. Má bohatú sadu komponentov pre rýchly vývoj aplikácií. Medzi spoločnosti, ktoré používajú Kohana, patria;
  • https://go.wepay.com/
  • https://kids.nationalgeographic.com/
  • https://www.sittercity.com/
CakePHP www.cakephp.org Je po vzore Ruby on rails. Je známy pre koncepty ako vzory návrhu softvéru, konvencie konfigurácie, ActiveRecord atď. Medzi aplikácie poháňané CakePHP patria;
  • http://invoicemachine.com/
  • http://www.fmylife.com/
www.framework.zend.com Zend Je to silný rámec, ktorý je;
  • Bezpečné, spoľahlivé, rýchle a škálovateľné
  • Podporuje Web 2.0 a tvorbu webových služieb.
Obsahuje API od dodávateľov ako Amazon, Google, Flickr, Yahoo atď. Je ideálny pre vývoj podnikových aplikácií. Medzi aplikácie využívajúce Zend patria;
  • Pimcore CMS,
  • DotKernel.
Medzi spoločnosti využívajúce rámec Zend patria;
  • BBC
  • Cisco
  • Webex
  • Offers.com

Prenesenie aplikácie prieskumu verejnej mienky na CodeIgniter

V tomto tutoriáli sme vytvorili aplikáciu PHP na hlasovanie. Tu prenesieme tento kód na CodeIgniter

  • Stiahnite si najnovšiu verziu aplikácie CodeIgniter z ich webových stránok.
  • Extrahujte obsah komprimovaného súboru do vývojového adresára v adresári webového servera. Ako názov priečinka v tejto lekcii použijeme ciopinionpoll.
  • Prejdite na adresu URL http: // localhost / ciopinionpoll /

Teraz prenesieme našu aplikáciu prieskumu verejnej mienky na CodeIgniter. Pripomeňme, že naša aplikácia bola rozdelená do troch hlavných zložiek, a to;

  • Predný radič - toto je časť, ktorá reaguje na požiadavky URL a vracia požadovanú stránku. Tento kód pôjde do ovládača
  • Model - to je kód, ktorý reaguje na požadované údaje a vracia požadované údaje. Tento kód pôjde do modelu
  • Zobrazenia - to je kód zodpovedný za formátovanie a zobrazovanie údajov. Tento kód prejde do zobrazenia
    • Prejdite do priečinka ciopinionpoll
    • Otvorte súbor database.php umiestnený v adresári application / config.
    • Vyhľadajte nasledujúce riadky kódu

Konfiguračné nastavenia databázy

  • Nastavte užívateľské meno na root
  • Nastavte heslo na svoje heslo root root localhost
  • Názov databázy to Opinion_poll. Upozorňujeme, že budeme používať databázu vytvorenú v predchádzajúcej lekcii.
  • Uložte zmeny a zatvorte súbor.

Vytváranie nášho modelu

Ďalej vytvoríme náš model, ktorý rozšíri CI_Model. CI_Model je súčasťou knižníc CodeIgniter. Model bude umiestnený v aplikácii / modeloch 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);}}?>

TU,

  • „Trieda Opinion_poll_model rozširuje CI_Model…“ je náš model, ktorý rozširuje CI_Model
  • „... parent :: __construct ();“ volá konštruktor CI_Model
  • „$ This-> load-> database ();“ načíta databázovú knižnicu, aby mohla naša aplikácia interagovať s databázou
  • „$ This-> db->“ je aktívny záznam CodeIgniteru. Kliknutím na tento odkaz získate ďalšie informácie o aktívnom zázname.

Vytvorenie nášho radiča Poďme teraz vytvoriť radič. Použijeme predvolený radič CodeIgniter umiestnený v application / controllers / welcome.php. Nahraďte jeho zdrojové kódy nasledujúcim kódom.

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

TU,

  • “If (! Defined ('BASEPATH')) exit ('Nie je povolený priamy prístup k skriptu');" zaisťuje, že používatelia nemajú priamy prístup k triede ovládačov
  • „Trieda Vitajte rozširuje CI_Controller ...“ náš radič rozširuje triedu CI_Controller
  • “Public function __construct ()” volá metódu contructor triedy CI_Controller a načíta náš model Opinion_poll_model
  • „Public function index () ...“ je funkcia, ktorá sa mapuje na index.php. používa vstupnú triedu CodeIgniter na kontrolu, či bol odoslaný hlas, pridá ho do databázy a potom zobrazí výsledky. Ak je poštové pole vstupnej triedy prázdne, načíta sa hlasovacia stránka.
  • „$ This-> input-> post ('...')“ je vstupná trieda CodeIgniter, ktorá zachytáva obsah globálnej premennej $ _POST.
  • “$ This-> Opinion_poll_model-> add_vote ($ this-> input-> post ('vote'))” volá metódu add_vote modelu na pridanie hlasovania do databázy.

Vytváranie našich názorov

Pripomeňme z predchádzajúceho príkladu, že sme mali dve stránky HTML, jednu na hlasovanie a druhú na výsledky. Na vytvorenie našich zobrazení použijeme rovnaký HTML kód s minimálnymi úpravami. V adresári application / views vytvorte nasledujúce súbory

opinion_poll_form.phpJavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript Library?

JQuery
MooTools
YUI Library
Glow

Poďme teraz vytvoriť stránku s výsledkami 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

Testovanie našej aplikácie

Za predpokladu, že koreňový adresár vašej aplikácie je ciopinion, prejdite na http: // localhost / ciopionpoll /

Kliknutím na tlačidlo OK sa zobrazí nasledujúca výstražná správa

Hlasujte pre svojho obľúbeného kandidáta a potom kliknite na OK. Uvidíte nasledujúcu stránku s výsledkami

Záver

CodeIgniter je ľahko naučiteľný a použiteľný rámec MVC pre PHP, ktorý môže výrazne skrátiť čas strávený vývojom aplikácií.

Zhrnutie

  • Rámec je sada knižníc, ktoré poskytujú čiastočnú implementáciu bežných úloh.
  • PHP má množstvo open source vyspelých a testovaných MVC rámcov.
  • Dobrý vývojový prístup oddeľuje údaje od prezentácie a podporuje použitie jediného vstupného bodu do aplikácie.
  • Tradičné aplikácie PHP, ktoré dodržiavajú osvedčené postupy pri návrhu aplikácií, je možné preniesť do rámcov MVC s minimálnymi úpravami.