⊗ppMVDFmDs 29 of 35 menu

Развој диспетчера у свом MVC оквиру

Подсетимо се тренутног садржаја фајла index.php:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // ваша реализация автозагрузки }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); ?>

Као што видите, засад наш рутер враћа објекат класе Track, који садржи име контролера, име акције и параметре из адресне траке. Поред тога, у претходној лекцији смо направили родитеља свих контролера.

Сада можемо да урадимо да се деси позивање методе контролера, чији подаци се налазе у нашој променљивој $track.

Тим ће се бавити специјална класа Dispatcher. Диспетчер ће добијати објекат класе Track и по његовим подацима креирати објекат назначене класе, позивати метод те класе, прослеђујући том методу параметре.

Хајде да додамо позивање диспетчера у фајл index.php:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // ваша реализация аутоматског учитавања }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); // Позивање диспетчера: $page = ( new Dispatcher ) -> getPage($track); ?>

Позивање метода getPage нашег диспетчера ће позвати метод render контролера и вратити оно што је тај позив вратио. Као што већ знате из претходне лекције, метод render контролера враћа објекат класе Page.

Ево скелета наше класе Dispatcher:

<?php namespace Core; class Dispatcher { public function getPage(Track $track) { ...код return контролер -> render(параметри); } } ?>

Користећи мој скелет, имплементирајте описану класу Dispatcher. Проверите њен рад. У случају потешкоћа, погледајте изворни код у фајловима мога направљеног образовног оквира.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј