⊗ppMVDFmCn 28 of 35 menu

Beheerders in jou eie MVC raamwerk in PHP

Soos jy reeds weet, het alle beheerders van ons raamwerk die metode render, wat genoem moet word om data na die siening te stuur. Hierdie metode word deur ons, gebruikersbeheerders, geërf van die ouerklas Controller, geleë in die kern. Laat ons hierdie klas maak:

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

Soos jy kan sien, neem die metode render as parameter die naam van die siening en die data vir vertoning aan. Laat hierdie metode die voorwerp van 'n spesiale klas Page terugstuur, waarin die inligting oor die vertoning van die data van die beheerder se aksie sal bevat. Hierdie klas sal die sieningnaam, data, sowel as die bladsytitel en die lêernaam met die uitleg van die webwerf bevat:

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

Dan sal die kode van ons metode render so lyk:

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

Laat ek verduidelik wat hier gebeur. Die sieningnaam en data kom as parameters van die metode. Eger, word die bladsytitel ook in die gebruikersbeheerder gestel - deur die eienskap title te skryf. Dus, in $this->title sal die titel wees wat ons aan die konstrukteur van die klas Page sal oordra.

Daar is ook nuances met die uitleg. Soos jy weet, gebruik ons raamwerk die uitleg vanuit die lêer default.php. Eintlik kan elke aksie 'n ander uitleg hê. Vir dit moet jy in die aksie self in die eienskap layout 'n ander uitlegnaam skryf.

Hoe dit bereik word: ons ouerbeheerder het die eienskap layout, by verstek met die waarde 'default.php'. Dit sal die verstek-uitleg wees. Eger, as die aksie van die gebruikersbeheerder die waarde van die eienskap layout oorheers, sal die uitleg anders wees.

Kopieer die kode van my klas Controller en plaas dit in die lêer /core/Controller.php.

Kopieer die kode van my klas Page en plaas dit in die lêer /core/Page.php.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp