Öz MVC çäreňizdä dispetçeri işläp taýýarlaň
Indiki index.php faýlynyň mazmunyny ýatlap göreli:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// siziň awtomatik ýüklemek amalyňyz
});
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
$track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']);
?>
Görşüňiz ýaly, häzirki wagtda router-ymyz
Track klassynyň obýektini yzyna gaýtarýar,
ýöneşdirijiniň adyny, hereketiň adyny we
salgys setirinden parametrleri öz içine alýar.
Şeýle-de, öňki sapakda biz ähli
ýöneşdirijileriň atasyny ýasadyk.
Indi biz $track üýtgeýjimizde ýerleşen
ýöneşdirijiniň usulynyň çagyrylýandygy
ýaly etmeli.
Bunu ýörite Dispatcher klassy ýerine ýetirer.
Dispetçer Track klassynyň obýektini alyp,
onuň maglumatlaryna görä görkezilen
klassyň obýektini döreder, bu klassyň usulyny
çagyrar, bu usula parametrleri geçirýär.
Geliň, index.php faýlyna dispetçeriň çagyrylyşyny goşalyň:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// siziň awtomatik ýüklemek amalyňyz
});
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
$track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']);
// Dispetçeri çakyrýarys:
$page = ( new Dispatcher ) -> getPage($track);
?>
Dispetçerimiziň getPage usulynyň çagyrylmagy
ýöneşdirijiniň render usulyny çagyrar
we şol usulyň çagyrylyşyndan yzyna gaýdan zady gaýtarar.
Öňki sapakdan bilişiňiz ýaly, ýöneşdirijiniň
render usuly Page klassynyň obýektini
yzyna gaýtarýar.
Dispatcher klassymyzyň taýýar şablonynyň görnüşi:
<?php
namespace Core;
class Dispatcher
{
public function getPage(Track $track)
{
...kod
return kontroler -> render(parametrler);
}
}
?>
Men taýýarlan şablony ulanyp, beýan edilen
Dispatcher klassyny amala aşyryň. Onuň işini barlaň.
Kynçylyk ýüze çykanda meniň taýýarlan okuw çäremin
faýlaryndaky başlangyç koda serediň.