⊗ppMVDFmDs 29 of 35 menu

Razvoj dispečerja v lastnem MVC ogrodju

Spomnimo se trenutne vsebine datoteke index.php:

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

Kot vidite, za zdaj naš usmerjevalnik vrne objekt razreda Track, ki vsebuje ime krmilnika, ime dejanja in parametre iz naslovne vrstice. Poleg tega smo v prejšnji lekciji naredili starša vseh krmilnikov.

Zdaj lahko naredimo tako, da se zgodi klic metode krmilnika, katere podatki so vsebovani v naši spremenljivki $track.

S tem se bo ukvarjal poseben razred Dispatcher. Dispečer bo prejel objekt razreda Track in po njegovih podatkih ustvaril objekt navedenega razreda, poklical metodo tega razreda in prenesel v to metodo parametre.

Dodajmo klic dispečerja v datoteko index.php:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // vaša implementacija avtomatskega nalaganja }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); // Klic dispečerja: $page = ( new Dispatcher ) -> getPage($track); ?>

Klic metode getPage našega dispečerja bo poklical metodo render krmilnika in vrnil tisto, kar je vrnil klic te metode. Kot že veste iz prejšnje lekcije, metoda render krmilnika vrne objekt razreda Page.

Tukaj je priprava našega razreda Dispatcher:

<?php namespace Core; class Dispatcher { public function getPage(Track $track) { ...koda return krmilnik -> render(parametri); } } ?>

Z uporabo moje priprave implementirajte opisani razred Dispatcher. Preverite njegovo delovanje. Pri težavah si oglejte izvorno kodo v datotekah mojega učnega ogrodja.

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
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni