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.