Co je to rámec PHP MVC?
PHP MVC je návrhový vzor aplikace, který odděluje aplikační data a obchodní logiku (model) od prezentace (zobrazení). MVC znamená Model, View & Controller.
Řadič zprostředkovává mezi modely a pohledy.
Představte si designový vzor MVC jako auto a řidiče.
Vůz má čelní skla (pohled), které řidič (řídící) používá ke sledování provozu před sebou, poté na rychlost nebo brzdu (model) v závislosti na tom, co vidí vpředu.
Proč používat PHP MVC Framework?
- Rámečky PHP MVC zjednodušují práci se složitými technologiemi o;
- Skrývá všechny složité podrobnosti implementace
- Poskytování standardních metod, které můžeme použít k sestavení našich aplikací.
- Zvýšená produktivita vývojářů, je to proto, že základní implementace aktivit, jako je připojení k databázi, dezinfekce vstupu uživatele atd., Je již částečně implementována.
- Dodržování profesionálních standardů kódování
V tomto výukovém programu se naučíte
- Návrhový vzor PHP MVC
- Typy rámce PHP MVC
- Přenesení aplikace veřejného mínění na CodeIgniter
- Nastavení konfigurace databáze
- Vytváření našeho modelu
- Vytváření našich pohledů
- Testování naší aplikace
Návrhový vzor PHP MVC
Pojďme nyní stručně probrat každou součást návrhového vzoru MVC.
Model - tato část se zabývá obchodní logikou a aplikačními daty. Lze jej použít k provedení ověření dat, zpracování dat a jejich uložení. Data mohou pocházet;
- plochý pilník
- databáze
- XML dokument
- Jiné platné zdroje dat.
Řadič - tato část se zabývá požadavky uživatelů na zdroje ze serveru.
Jako příklad, když uživatelé požadují adresu URL ... /index.php?products=list, ovladač načte model produktů, aby načetl data produktů, a poté odešle výsledky do zobrazení seznamu.
Stručně řečeno, řadič propojuje modely a pohledy společně v závislosti na požadovaných zdrojích.
Pohledy - tato část se zabývá prezentací dat uživateli. Obvykle je to ve formě stránek HTML.
Typy rámce PHP MVC
Vybrat nejlepší rámec PHP je výzva.
Abyste mohli využívat výhod MVC, nemusíte psát svůj vlastní rámec.
Měli byste se pouze pokusit vytvořit svůj vlastní návrh aplikace související s MVC, abyste pochopili, jak fungují rámce MVC.
Jakmile vám vyhovuje způsob, jakým rámce MVC fungují, měli byste přejít k vyspělým a již otestovaným rámcům.
Níže uvedená tabulka stručně popisuje některé z populárních php frameworků a funkce, které každý framework nabízí.
Rámec | Popis |
---|---|
CodeIgniter https://codeigniter.com/ | Je to jeden z nejpopulárnějších rámců PHP MVC. Je lehký a má krátkou křivku učení. Má bohatou sadu knihoven, které pomáhají rychle vytvářet webové stránky a aplikace. Používat jej mohou také uživatelé s omezenými znalostmi programování OOP. Mezi aplikace využívající CodeIgniter patří;
|
Kohana http://kohanaframework.org | Je to bezpečný a lehký rámec Hierarchical Model View Controller HMVC. Má bohatou sadu komponent pro rychlý vývoj aplikací. Mezi společnosti, které používají Kohana, patří;
|
CakePHP www.cakephp.org | Je po vzoru Ruby on rails. Je známý pro koncepty, jako jsou vzory návrhu softwaru, konvence nad konfigurací, ActiveRecord atd. Zahrnují aplikace poháněné CakePHP;
|
www.framework.zend.com Zend | Jedná se o silný rámec, který je;
|
Přenesení aplikace veřejného mínění na CodeIgniter
V tomto tutoriálu jsme vytvořili aplikaci pro hlasování v PHP. Zde přeneseme tento kód do CodeIgniter
- Stáhněte si nejnovější verzi CodeIgniter z jejich webových stránek.
- Extrahujte obsah komprimovaného souboru do vývojového adresáře v adresáři webového serveru. Jako název složky v této lekci použijeme ciopinionpoll.
- Přejděte na adresu URL http: // localhost / ciopinionpoll /
Nyní se chystáme přenést naši aplikaci průzkumu veřejného mínění na CodeIgniter. Připomeňme, že naše aplikace byla rozdělena do tří hlavních složek, a to;
- Přední ovladač - toto je část, která odpovídá na požadavky URL a vrací požadovanou stránku. Tento kód přejde do ovladače
- Model - toto je kód, který reaguje na požadovaná data a vrací požadovaná data. Tento kód přejde do modelu
- Pohledy - toto je kód odpovědný za formátování a zobrazení dat. Tento kód přejde do zobrazení
- Přejděte do složky ciopinionpoll
- Otevřete soubor database.php umístěný v adresáři application / config.
- Vyhledejte následující řádky kódu
Nastavení konfigurace databáze
- Nastavte uživatelské jméno na root
- Nastavte heslo ke svému kořenovému heslu localhost
- Název databáze to Opinion_poll. Všimněte si, že budeme používat databázi vytvořenou v předchozí lekci.
- Uložte změny a zavřete soubor.
Vytváření našeho modelu
Dále vytvoříme náš model, který rozšíří CI_Model. CI_Model je součástí knihoven CodeIgniter. Model bude umístěn v aplikaci / modely 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
TADY,
- „Třída Opinion_poll_model rozšiřuje CI_Model…“ je náš model, který rozšiřuje CI_Model
- „… Parent :: __construct ();“ volá konstruktor CI_Model
- „$ This-> load-> database ();“ načte knihovnu databáze, aby mohla naše aplikace s databází interagovat
- „$ This-> db->“ je aktivní záznam CodeIgniteru. Zaškrtnutím tohoto odkazu získáte další informace o aktivním záznamu.
Vytvoření našeho správce Pojďme nyní vytvořit správce. Použijeme výchozí řadič CodeIgniter umístěný v application / controllers / welcome.php. Nahraďte jeho zdrojové kódy následujícím kódem.
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 */?>
TADY,
- „If (! Defined ('BASEPATH')) exit ('No direct script access enabled');" zajišťuje, že uživatelé nemají přímý přístup ke třídě řadičů
- „Třída Vítejte rozšiřuje CI_Controller…“ náš řadič rozšiřuje třídu CI_Controller
- “Public function __construct ()” volá metodu contructor třídy CI_Controller a načte náš model Opinion_poll_model
- „Public function index ()…“ je funkce, která se mapuje na index.php. používá vstupní třídu CodeIgniter ke kontrole, zda bylo odesláno hlasování, přidá jej do databáze a poté zobrazí výsledky. Pokud je poštovní pole vstupní třídy prázdné, načte hlasovací stránku.
- „$ This-> input-> post ('…')“ je vstupní třída CodeIgniter, která zachycuje obsah globální proměnné $ _POST.
- „$ This-> Opinion_poll_model-> add_vote ($ this-> input-> post ('vote'))” volá metodu add_vote modelu pro přidání hlasu do databáze.
Vytváření našich pohledů
Připomeňme si z předchozího příkladu, že jsme měli dvě stránky HTML, jednu pro hlasování a druhou pro výsledky. K vytvoření našich pohledů použijeme stejný HTML kód s minimálními úpravami. Vytvořte následující soubory v adresáři aplikace / zobrazení
opinion_poll_form.phpJavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript Library?
Pojďme nyní vytvořit stránku s výsledky 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:
Testování naší aplikace
Za předpokladu, že kořenový adresář vaší aplikace je ciopinion, přejděte na http: // localhost / ciopionpoll /
Klikněte na tlačítko OK, zobrazí se následující výstražná zpráva
Hlasujte pro svého oblíbeného kandidáta a poté klikněte na OK. Zobrazí se následující stránka s výsledky
Závěr
CodeIgniter je snadno naučitelný a použitelný rámec PHP MVC, který může výrazně zkrátit čas strávený vývojem aplikací.
souhrn
- Rámec je sada knihoven, které poskytují částečnou implementaci běžných úkolů.
- PHP má řadu open source vyspělých a testovaných MVC frameworků.
- Dobrý vývojový přístup odděluje data od prezentace a podporuje použití jediného vstupního bodu do aplikace.
- Tradiční aplikace PHP, které dodržují osvědčené postupy při navrhování aplikací, lze s minimálními úpravami přenést do rámců MVC.