Uundaji wa Dispatcher katika Mfumo wako wa MVC
Tukumbuke yaliyomo kwa sasa ya faili index.php:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// utekelezaji wako wa upakiaji otomatiki
});
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
$track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']);
?>
Kama unavyoona, kwa sasa router wetu inarudisha
kipenzi cha darasa Track, kilichokuwa na jina la
controller, jina la kitendo na vigezo kutoka
kwenye mstari wa anwani. Zaidi ya hayo, katika somo
lilopita tulifanya mzazi wa controllers zote.
Sasa tunaweza kufanya ili kuitwe njia ya controller,
ambayo data yake iko kwenye tunable yetu $track.
Hii itafanywa na darasa maalum Dispatcher.
Dispatcher itapokea kipeenzi cha darasa Track
na kwa data zake kuunda kipeenzi cha darasa maalum,
kuita njia ya darasa hilo, na kumpitisha
katika njia hiyo vigezo.
Wacha tuongeze wito wa dispatcher kwenye faili index.php:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// utekelezaji wako wa upakiaji otomatiki
});
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
$track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']);
// Wito wa dispatcher:
$page = ( new Dispatcher ) -> getPage($track);
?>
Uitaji wa njia getPage ya dispatcher yetu
utaita njia render ya controller
na kurudisha ile ambayo itarudiwa na wito wa njia hiyo.
Kama tayari unajua kutoka kwenye somo lilopita, njia
render ya controller hurudisha kipeenzi
cha darasa Page.
Hapa kuna maandalizi ya darasa letu Dispatcher:
<?php
namespace Core;
class Dispatcher
{
public function getPage(Track $track)
{
...code
return controller -> render(parameters);
}
}
?>
Kwa kutumia maandalizi yangu, tekeleza darasa liloelezewa
Dispatcher. Angalia utendaji wake.
Kwa shida angalia msingi code
kwenye faili za mfumo wa mafunzo uliofanywa na mimi.