PHP MVC keretrendszer: CodeIgniter példa

Tartalomjegyzék:

Anonim

Mi a PHP MVC keretrendszer?

A PHP MVC egy olyan alkalmazás-tervezési minta, amely elválasztja az alkalmazás adatait és az üzleti logikát (modellt) a bemutatótól (nézet). Az MVC jelentése Model, View & Controller.

A vezérlő közvetít a modellek és a nézetek között.

Gondoljon az MVC tervezési mintájára, mint autóra és vezetőre.

Az autó rendelkezik szélvédővel (nézet), amelyet a vezető (irányító) használ az előre haladó forgalom, majd a sebesség vagy a fékezés (modell) függvényében, amit lát.

Miért érdemes használni a PHP MVC keretrendszert?

  • A PHP MVC keretrendszerek egyszerűsítik az összetett technológiákkal való munkát;
    • Az összes komplex megvalósítási részlet elrejtése
    • Olyan szabványos módszerek biztosítása, amelyekkel felhasználhatjuk az alkalmazásokat.
    • A fejlesztői termelékenység megnövekedése, mivel a tevékenységek, például az adatbázishoz való csatlakozás, a felhasználói bemenetek fertőtlenítése stb.
    • A szakmai kódolási előírások betartása

Ebben az oktatóanyagban megtanulja-

  • PHP MVC tervezési minta
  • A PHP MVC keretrendszer típusai
  • A közvélemény-kutatási alkalmazás portálása a CodeIgniterbe
  • Adatbázis-konfigurációs beállítások
  • Modellünk megalkotása
  • Nézeteink megalkotása
  • Alkalmazásunk tesztelése

PHP MVC tervezési minta

Most röviden tárgyaljuk meg az MVC tervezési mintázatának egyes elemeit.

Modell - ez a rész az üzleti logikával és az alkalmazás adataival foglalkozik. Használható adatok hitelesítésére, adatok feldolgozására és tárolására. Az adatok származhatnak;

  • lapos reszelő
  • adatbázis
  • XML dokumentum
  • Egyéb érvényes adatforrások.

Vezérlő - ez a rész foglalkozik a felhasználók erőforrás-kéréseivel a szerverről.

Például, amikor a felhasználók az URL / /index.php?products=list URL-t kérik, a vezérlő betölti a termékmodellt a termékadatok lekérésére, majd az eredményeket a listanézetben adja ki.

Dióhéjban a vezérlő összekapcsolja a modelleket és a nézeteket a kért erőforrásoktól függően.

Nézetek - ez a rész az adatok bemutatásával foglalkozik a felhasználóval. Ez általában HTML oldalak formájában történik.

A PHP MVC keretrendszer típusai

A legjobb PHP keretrendszer kiválasztása kihívást jelent.

Az MVC előnyeinek kihasználásához nem kell saját keretrendszert írni.

Csak saját MVC-hez kapcsolódó alkalmazás-terv létrehozását kell megkísérelnie, hogy megértse az MVC-keretrendszerek működését.

Miután jól érezte magát az MVC keretrendszer működésében, folytassa az érett és már tesztelt keretrendszerrel.

Az alábbi táblázat röviden ismerteti a népszerű php keretrendszereket és az egyes keretrendszerek által kínált szolgáltatásokat.

Keretrendszer Leírás
CodeIgniter https://codeigniter.com/ Ez az egyik legnépszerűbb PHP MVC keretrendszer. Könnyű és rövid tanulási görbével rendelkezik. Gazdag könyvtárakkal rendelkezik, amelyek elősegítik a weboldalak és alkalmazások gyors felépítését. Az OOP programozásának korlátozott ismereteivel rendelkező felhasználók is használhatják. A CodeIgniter által működtetett alkalmazások tartalmazzák;
  • https://www.pyrocms.com/
  • http://www.shopigniter.com/
Kohana http://kohanaframework.org Ez egy hierarchikus modell-nézetvezérlő HMVC biztonságos és könnyű váz. Gazdag alkatrészkészlettel rendelkezik az alkalmazások gyors fejlesztéséhez. A Kohanát használó vállalatok közé tartoznak;
  • https://go.wepay.com/
  • https://kids.nationalgeographic.com/
  • https://www.sittercity.com/
CakePHP www.cakephp.org Ruby mintájára készült a sínen. Olyan fogalmakról ismert, mint a szoftvertervezési minták, a konfigurációkonfiguráció, az ActiveRecord stb. A CakePHP-alapú alkalmazások tartalmazzák;
  • http://invoicemachine.com/
  • http://www.fmylife.com/
www.framework.zend.com Zend Ez egy erős keret, amely;
  • Biztonságos, megbízható, gyors és méretezhető
  • Támogatja a Web 2.0-t és a webszolgáltatások létrehozását.
API-kat tartalmaz olyan gyártóktól, mint az Amazon, a Google, a Flickr, a Yahoo stb. Ideális üzleti alkalmazások fejlesztéséhez. A Zend által működtetett alkalmazások tartalmazzák;
  • Pimcore CMS,
  • DotKernel.
A Zend keretrendszert használó vállalatok a következők:
  • BBC
  • Cisco
  • Webex
  • Offers.com

A közvélemény-kutatási alkalmazás portálása a CodeIgniterbe

Ebben az oktatóanyagban létrehoztunk egy PHP közvélemény-kutatási alkalmazást. Itt ezt a kódot a CodeIgniterbe portáljuk

  • Töltse le a CodeIgniter legújabb verzióját a webhelyükről.
  • Bontsa ki a tömörített fájl tartalmát a webkiszolgáló könyvtárában található fejlesztői könyvtárba. Ebben a leckében mappanévként a ciopinionpoll szót fogjuk használni.
  • Keresse meg az URL címet : http: // localhost / ciopinionpoll /

Most át fogjuk vinni a közvélemény-kutatási alkalmazásunkat a CodeIgniter-be. Emlékezzünk arra, hogy alkalmazásunkat három fő összetevőre osztották, nevezetesen a;

  • Első vezérlő - ez az a rész, amely válaszol az URL-kérésekre, és visszaadja a kért oldalt. Ez a kód a vezérlőbe kerül
  • Modell - ez az a kód, amely válaszol a kért adatokra és visszaadja a kért adatokat. Ez a kód bekerül a modellbe
  • Nézetek - ez az a kód, amely az adatok formázásáért és megjelenítéséért felelős. Ez a kód a nézetbe kerül
    • Keresse meg a ciopinionpoll mappát
    • Nyissa meg az database.php fájlt, amely az alkalmazás / config könyvtárban található.
    • Keresse meg a következő kódsorokat

Adatbázis-konfigurációs beállítások

  • Állítsa be a felhasználónév gyökerét
  • Állítsa be a jelszót a localhost root jelszavához
  • Az adatbázis neve a vélemény_kérdezéshez. Ne feledje, hogy az előző leckében létrehozott adatbázist fogjuk használni.
  • Mentse el a módosításokat, és zárja be a fájlt.

Modellünk megalkotása

Ezután elkészítjük a CI_Model kiterjesztését lehetővé tevő modellünket. A CI_Model a CodeIgniter könyvtárak része. A modell az application / models vélemény_poll_model.php fájlban lesz

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);}}?>

ITT,

  • „Az osztály vélemény_poll_model kiterjeszti a CI_Modelt…” az a modellünk, amely kiterjeszti a CI_Modelt
  • „… Szülő :: __construct ();” felhívja a CI_Model konstruktort
  • "$ This-> betöltés-> adatbázis ();" betölti az adatbázis-könyvtárat, hogy alkalmazásunk kölcsönhatásba léphessen az adatbázissal
  • A „$ this-> db->” a CodeIgniter aktív rekordja. Ellenőrizze ezt a linket, ha további információt szeretne az aktív rekordról.

Vezérlőnk létrehozása Most hozzuk létre a vezérlőt. Az alapértelmezett CodeIgniter vezérlőt fogjuk használni, amely az application / controllers / welcome.php fájlban található. Cserélje ki a forráskódot a következő kódra.

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

ITT,

  • "If (! Define ('BASEPATH')) kilépés ('Nincs engedélyezve a parancsfájl hozzáférése');" biztosítja, hogy a felhasználók ne érjék el közvetlenül a vezérlő osztályt
  • „A Class Welcome kiterjeszti a CI_Controller…” vezérlőnk kiterjeszti a CI_Controller osztályt
  • A „public function __construct ()” meghívja a CI_Controller osztályvezérlő módszerét, és betölti a vélemény_poll_modell modellünket
  • A „public function index ()…” az index.php fájlhoz társított függvény. a CodeIgniter bemeneti osztályával ellenőrzi, hogy leadtak-e szavazatot, felveszi az adatbázisba, majd megjeleníti az eredményeket. Ha a beviteli osztály post tömbje üres, akkor betölti a szavazási oldalt.
  • A „$ this-> input-> post ('…')" a CodeIgniter bemeneti osztály, amely megragadja a $ _POST globális változó tartalmát.
  • A „$ this-> vélemény_poll_model-> add_vote ($ this-> input-> post ('szavazás'))” meghívja a modell add_vote metódusát a szavazat hozzáadásához az adatbázisba.

Nézeteink megalkotása

Emlékezzünk vissza az előző példából, hogy két HTML oldalunk volt, az egyik a szavazáshoz, a másik az eredményekhez. Nézeteink elkészítéséhez ugyanazt a HTML-kódot fogjuk használni, minimális módosítással. Hozza létre a következő fájlokat az alkalmazás / nézetek könyvtárban

opinion_poll_form.phpJavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript Library?

JQuery
MooTools
YUI Library
Glow

Most hozzuk létre az eredményoldal eredményeit.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

Alkalmazásunk tesztelése

Ha feltételezzük, hogy az alkalmazás gyökérkönyvtára ciopinion, keresse meg a http: // localhost / ciopionpoll / oldalt.

Kattintson az OK gombra, és a következő figyelmeztető üzenet jelenik meg

Szavazz a kedvenc jelöltedre, majd kattints az OK gombra. Megjelenik a következő eredményoldal

Következtetés

A CodeIgniter egy könnyen megtanulható és használható PHP MVC keretrendszer, amely jelentősen csökkentheti az alkalmazások fejlesztésével töltött időt.

Összegzés

  • A keretrendszer olyan könyvtárak összessége, amelyek a közös feladatok részleges végrehajtását biztosítják.
  • A PHP számos nyílt forráskódú érett és tesztelt MVC keretrendszerrel rendelkezik.
  • A jó fejlesztési megközelítés elválasztja az adatokat a prezentációtól, és ösztönzi az egyetlen belépési pont alkalmazását egy alkalmazásba.
  • A hagyományos PHP-alkalmazások, amelyek követik az alkalmazás-tervezés legjobb gyakorlatát, minimális módosítással portálhatók az MVC-keretrendszerbe.