⊗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šuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј