⊗ppMVDFmCn 28 of 35 menu

Vikarabati katika Mfumo wa MVC Wako katika PHP

Kama unavyojua tayari, vikarabati vyote vya mfumo wetu wana mbinu render, ambayo inahitaji kuitwa kwa ajili ya kutuma data kwenye mtazamo. Mbinu hii vikarabati vyetu, vikarabati vya mtumiaji vinarithi kutoka kwa darasa la mzazi Controller, lililoko kwenye kiini. Hebu tutengeneze darasa hili:

<?php namespace Core; class Controller { protected function render($view, $data) { } } ?>

Kama unavyoona, mbinu render inapokea kigezo jina la mtazamo na data kwa ajili ya kuonyesha. Hebu mbinu hii irudishe kitu cha darasa maalum Page, ambamo utapatikana taarifa kuhusu mtazamo wa data ya kitendo cha kikarabati. Katika darasa hili utakuwemo jina la mtazamo, data, na pia kichwa (title) cha ukurasa na jina la faili lenye mpangilio (layout) wa tovuti:

<?php namespace Core; class Page { private $layout; private $title; private $view; private $data; public function __construct($layout, $title, $view, $data) { $this->layout = $layout; $this->title = $title; $this->view = $view; $this->data = $data; } public function __get($property) { return $this->$property; } } ?>

Basi kanuni za mbinu yetu render zitakuwa zinavyoonekana hivi:

<?php namespace Core; class Controller { protected $layout = 'default'; protected function render($view, $data) { return new Page($this->layout, $this->title, $view, $data); } } ?>

Naeleze, nini kinatokea hapa. Jina la mtazamo na data hufika kama vigezo vya mbinu. Hata hivyo, katika kikarabati cha mtumiaji imewekwa pia kichwa (title) cha ukurasa - kwa njia ya kuandika sifa title. Hivyo, katika $this->title ndio utakuwemo kichwa, ambacho tutatambulisha kwa mkabidhi wa darasa Page.

Kuna pia mambo muhimu kuhusu mpangilio (layout). Kama unavyojua, mfumo wetu unatumia mpangilio (layout) kutoka kwa faili default.php. Kweli, kila kitendo kinaweza kuwa na mpangilio (layout) mwingine. Kwa ajili ya hili inahitajika katika kitendo chenyewe katika sifa layout kuandika jina lingine la mpangilio (layout).

Jinsi hii inafikiwayo: kikarabati chetu cha mzazi kina sifa layout, kwa msingi ikiwa na thamani 'default.php'. Hii ndio itakuwa mpangilio (layout) kwa msingi. Hata hivyo, ikiwa kitendo cha kikarabati cha mtumiaji kitabadilisha thamani ya sifa layout, basi mpangilio (layout) utakuwa mwingine.

Nakili kanuni za darasa langu Controller na uziweke kwenye faili /core/Controller.php.

Nakili kanuni za darasa langu Page na uziweke kwenye faili /core/Page.php.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa