⊗ppMVDFmDs 29 of 35 menu

Razvoj dispečera u sopstvenom MVC frejmvorku

Prisetimo se trenutnog sadržaja fajla index.php:

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

Kao što vidite, za sada naš router vraća objekat klase Track, koji sadrži ime kontrolera, ime akcije i parametre iz adresne trake. Osim toga, u prethodnoj lekciji smo napravili roditelja za sve kontrolere.

Sada možemo da postignemo da se izvrši poziv metode kontrolera, čiji se podaci nalaze u našoj promenljivoj $track.

Time će se baviti specijalna klasa Dispatcher. Dispečer će dobijati objekat klase Track i na osnovu njegovih podataka kreirati objekat navedene klase, pozivati metodu te klase, prosleđujući toj metodi parametre.

Hajde da dodamo poziv dispečera u fajl index.php:

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

Poziv metode getPage našeg dispečera će pozvati metodu render kontrolera i vratiti ono što je vratio taj poziv. Kao što već znate iz prethodne lekcije, metoda render kontrolera vraća objekat klase Page.

Evo šablona naše klase Dispatcher:

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

Koristeći moj šablon implementirajte opisanu klasu Dispatcher. Proverite njen rad. U slučaju poteškoća pogledajte izvorni kod u fajlovima učinjeg frejmvorka koji sam napravio.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij