⊗ppMVDFmDs 29 of 35 menu

Vývoj dispatchera vo vlastnom MVC frameworku

Pripomeňme si aktuálny obsah súboru index.php:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // vaša implementácia autoloadingu }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); ?>

Ako vidíte, náš router zatiaľ vracia objekt triedy Track, ktorý obsahuje názov kontrolera, názov akcie a parametre z adresného riadku. Okrem toho sme v predchádzajúcej lekcii vytvorili rodiča všetkých kontrolerov.

Teraz môžeme zaistiť, aby sa uskutočnilo volanie metódy kontrolera, ktorého údaje sú obsiahnuté v našej premennej $track.

Tým sa bude zaoberať špeciálna trieda Dispatcher. Dispatcher dostane objekt triedy Track a podľa jeho údajov vytvorí objekt zadanej triedy, zavolá metódu tejto triedy a prekladí do tejto metódy parametre.

Pridajme volanie dispatchera do súboru index.php:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // vaša implementácia autoloadingu }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); // Volanie dispatchera: $page = ( new Dispatcher ) -> getPage($track); ?>

Volanie metódy getPage nášho dispatchera zavolá metódu render kontrolera a vráti to, čo vráti volanie tejto metódy. Ako už viete z predchádzajúcej lekcie, metóda render kontrolera vracia objekt triedy Page.

Tu je kostra našej triedy Dispatcher:

<?php namespace Core; class Dispatcher { public function getPage(Track $track) { ...kód return kontroler -> render(parametre); } } ?>

Použitím mojej kostry implementujte opísanú triedu Dispatcher. Otestujte jej činnosť. Pri ťažkostiach sa pozrite na zdrojový kód v súboroch mnou vytvoreného vzdelávacieho frameworku.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť