PHP MVC raamistiku õpetus: CodeIgniteri näide

Lang L: none (table-of-contents):

Anonim

Mis on PHP MVC raamistik?

PHP MVC on rakenduse kujundusmuster, mis eraldab rakenduse andmed ja äriloogika (mudel) esitlusest (vaade). MVC tähistab mudelit, vaadet ja kontrollerit.

Kontroller vahendab mudelite ja vaadete vahel.

Mõelge MVC disainimustrist kui autost ja juhist.

Autol on esiklaasid (vaade), mida juht (kontroller) kasutab liikluse jälgimiseks ette, seejärel kiirust või pidurit (mudel) sõltuvalt sellest, mida ta ees näeb.

Miks kasutada PHP MVC raamistikku?

  • PHP MVC raamistikud lihtsustavad keerukate tehnoloogiatega töötamist;
    • Kõikide keerukate rakenduse üksikasjade peitmine
    • Pakume standardmeetodeid, mida saame kasutada oma rakenduste loomiseks.
    • Arendajate produktiivsuse suurenemine on tingitud sellest, et selliste tegevuste baasrakendus nagu andmebaasiga ühenduse loomine, kasutaja sisendi puhastamine jne on juba osaliselt rakendatud.
    • Professionaalsete kodeerimisstandardite järgimine

Selles õpetuses saate teada

  • PHP MVC kujundusmuster
  • PHP MVC raamistiku tüübid
  • Arvamusküsitluste rakenduse portimine CodeIgniterisse
  • Andmebaasi seadistussätted
  • Meie mudeli loomine
  • Meie vaadete loomine
  • Meie rakenduse testimine

PHP MVC kujundusmuster

Arutame nüüd lühidalt MVC kujundusmustri kõiki komponente.

Mudel - see osa käsitleb äriloogikat ja rakenduse andmeid. Seda saab kasutada andmete valideerimiseks, andmete töötlemiseks ja salvestamiseks. Andmed võivad pärineda;

  • tasane viil
  • andmebaasi
  • XML-dokument
  • Muud kehtivad andmeallikad.

Kontroller - see on see osa, mis käsitleb kasutajate serverist pärinevaid ressursside taotlusi.

Näiteks kui kasutajad taotlevad URL-i… /index.php?products=list, laadib kontroller tootemudeli toodete andmete hankimiseks ja väljastab tulemused loendivaates.

Lühidalt, kontroller seob mudelid ja vaated omavahel, sõltuvalt taotletud ressurssidest.

Vaated - see osa käsitleb andmete esitamist kasutajale. See on tavaliselt HTML-lehtede kujul.

PHP MVC raamistiku tüübid

Parima PHP raamistiku valimine on väljakutse.

MVC eeliste kasutamiseks ei pea te ise oma raamistikku kirjutama.

MVC raamistike töö mõistmiseks peaksite proovima luua ainult oma MVC-ga seotud rakenduse kujunduse.

Kui olete MVC raamistike tööga rahul, peaksite liikuma küpsete ja juba testitud raamistike juurde.

Alltoodud tabel kirjeldab lühidalt mõningaid populaarseid php-raamistikke ja funktsioone, mida iga raamistik pakub.

Raamistik Kirjeldus
CodeIgniter https://codeigniter.com/ See on üks populaarsemaid PHP MVC raamistikke. See on kerge ja lühikese õppekõveraga. Sellel on rikkalik kogum raamatukogusid, mis aitavad veebisaite ja rakendusi kiiresti üles ehitada. Kasutajad, kellel on piiratud teadmised OOP-i programmeerimisest, saavad seda ka kasutada. CodeIgniteri toega rakendused hõlmavad järgmist;
  • https://www.pyrocms.com/
  • http://www.shopigniter.com/
Kohana http://kohanaframework.org See on hierarhiline mudeli vaate kontrolleri HMVC turvaline ja kerge raam. Sellel on rikkalik komponentide komplekt rakenduste kiireks arendamiseks. Kohanat kasutavate ettevõtete hulka kuuluvad:
  • https://go.wepay.com/
  • https://kids.nationalgeographic.com/
  • https://www.sittercity.com/
CakePHP www.cakephp.org Selle eeskujuks on rööbastel Ruby. See on tuntud selliste mõistete poolest nagu tarkvara kujundusmustrid, konfiguratsiooni kokkuleppimine, ActiveRecord jne. CakePHP toega rakendused hõlmavad järgmist;
  • http://invoicemachine.com/
  • http://www.fmylife.com/
www.framework.zend.com Zend See on võimas raamistik, mis on;
  • Turvaline, usaldusväärne, kiire ja skaleeritav
  • Toetab veebi 2.0 ja veebiteenuste loomist.
Sellel on API-d sellelt müüjalt nagu Amazon, Google, Flickr, Yahoo jne. See on ideaalne ärirakenduste arendamiseks. Zendi toega rakendused hõlmavad järgmist
  • Pimcore CMS,
  • DotKernel.
Zendi raamistikku kasutavad ettevõtted hõlmavad järgmist:
  • BBC
  • Cisco
  • Webex
  • Pakkumised.com

Arvamusküsitluste rakenduse portimine CodeIgniterisse

Selles õpetuses lõime PHP küsitlusrakenduse. Siirdame selle koodi CodeIgniterisse

  • Laadige CodeIgniteri uusim versioon alla oma veebisaidilt.
  • Pakkige ZIP-faili sisu veebiserveri kataloogis olevasse arenduskataloogi. Selles õppetükis kasutame kaustanimena ciopinionpolli.
  • Sirvige URL-i http: // localhost / ciopinionpoll /

Nüüd edastame oma arvamusküsitluste rakenduse CodeIgniterile. Tuletame meelde, et meie rakendus jagunes kolmeks põhikomponendiks, nimelt;

  • Eesmine kontroller - see on see osa, mis vastab URL-i päringutele ja tagastab soovitud lehe. See kood läheb kontrollerisse
  • Mudel - see on kood, mis vastab taotletud andmetele ja tagastab nõutud andmed. See kood läheb mudelisse
  • Vaated - see on andmete vormindamise ja kuvamise eest vastutav kood. See kood läheb vaatesse
    • Sirvige ciopinionpoll kausta
    • Avage andmebaas.php, mis asub rakenduse / konfiguratsiooni kataloogis.
    • Leidke järgmised koodiread

Andmebaasi seadistussätted

  • Määrake kasutajanimi root
  • Määrake parooliks localhost root parool
  • Andmebaasi nimi arvamusküsitlusele. Pange tähele, et kasutame eelmises õppetükis loodud andmebaasi.
  • Salvestage muudatused ja sulgege fail.

Meie mudeli loomine

Järgmisena loome oma mudeli, mis laiendab CI_Modeli. CI_Model on osa CodeIgniteri teekidest. Mudel asub rakenduses / mudelid 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);}}?>

SIIN,

  • "Klass Arvamus_poll_model laiendab CI_Modeli ..." on meie mudel, mis laiendab CI_Modelit
  • "… Vanem :: __construct ();" kutsub konstruktori CI_Model
  • "$ This-> load-> andmebaas ();" laadib andmebaasi teegi, nii et meie rakendus saaks andmebaasiga suhelda
  • “$ This-> db->” on CodeIgniteri aktiivne kirje. Aktiivse kirje kohta lisateabe saamiseks vaadake seda linki.

Meie kontrolleri loomine Loome nüüd kontrolleri. Kasutame vaikimisi kontrollerit CodeIgniter, mis asub rakenduses / kontrollerid / welcome.php. Asendage selle lähtekoodid järgmise koodiga.

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

SIIN,

  • "If (! Define ('BASEPATH')) exit ('Skripti otsene juurdepääs pole lubatud');" tagab, et kasutajad ei pääse kontrolleriklassile otse juurde
  • „Class Welcome laiendab CI_Controllerit ...” laiendab meie kontroller CI_Controller klassi
  • “Public function __construct ()” kutsub CI_Controlleri klassi kontraktori meetodit ja laadib meie mudeli Opinion_poll_model
  • „Avaliku funktsiooni register ()…” on funktsioon, mis kaardistab saidi index.php. see kasutab CodeIgniteri sisestusklassi, et kontrollida, kas hääletus on esitatud, lisage see andmebaasi ja kuvage tulemused. Kui sisendklassi postimassiiv on tühi, laadib see hääletamislehe.
  • "$ This-> input-> post ('...')" on CodeIgniteri sisendklass, mis haarab globaalse muutuja $ _POST sisu.
  • “$ This-> vélemény_poll_model-> add_vote ($ this-> input-> post ('hääletus))" kutsub mudeli add_vote meetodit, et lisada hääl andmebaasi.

Meie vaadete loomine

Tuletame eelmisest näitest meelde, et meil oli kaks HTML-i lehte, üks hääletamiseks ja teine ​​tulemuste jaoks. Vaatete loomiseks kasutame sama HTML-koodi minimaalsete muudatustega. Looge järgmised failid rakenduste / vaadete kataloogi

opinion_poll_form.phpJavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript Library?

JQuery
MooTools
YUI Library
Glow

Loome nüüd tulemuste lehe 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

Meie rakenduse testimine

Eeldades, et teie rakenduse juurkataloog on ciopinion, sirvige lehele http: // localhost / ciopionpoll /

Klõpsake nuppu OK ja näete järgmist hoiatusteadet

Hääletage oma lemmikkandidaadi poolt ja klõpsake siis nuppu OK. Näete järgmist tulemuste lehte

Järeldus

CodeIgniter on hõlpsasti õpitav ja kasutatav PHP MVC raamistik, mis võib oluliselt vähendada rakenduste arendamisele kuluvat aega.

Kokkuvõte

  • Raamistik on kogum raamatukogusid, mis võimaldavad ühiste ülesannete osalist rakendamist.
  • PHP-l on mitu avatud lähtekoodiga küpset ja testitud MVC-raamistikku.
  • Hea arengupõhine lähenemisviis eraldab andmed esitlusest ja julgustab kasutama rakenduses ühte sisestuspunkti.
  • Traditsioonilisi PHP-rakendusi, mis järgivad rakenduse kujunduse parimaid tavasid, saab minimaalsete muudatustega MVC-raamistikesse teisaldada.