⊗ppMVDFmDs 29 of 35 menu

Dispetcheri arendamine oma MVC raamistikus

Meenutame faili index.php praegust sisu:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // sinu automaatse laadimise implementatsioon }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); ?>

Nagu näete, seni kuni meie ruuter tagastab klassi Track objekti, mis sisaldab kontrolleri nime, tegevuse nime ja parameetreid aadressiribalt. Lisaks tegime eelmises õppetükis kõikide kontrollerite ülemklassi.

Nüüd saame teha nii, et toimub kontrolleri meetodi väljakutse, mille andmed sisalduvad meie muutujas $track.

Sellega hakkab tegelema spetsiaalne klass Dispatcher. Dispetcher saab klassi Track objekti ja selle andmete põhjal loob näidatud klassi objekti, kutsub selle klassi meetodi välja, edastades selles meetodis parameetrid.

Lisagem dispetcheri väljakutse faili index.php:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // sinu automaatse laadimise implementatsioon }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); // Dispetcheri väljakutse: $page = ( new Dispatcher ) -> getPage($track); ?>

Meie dispetcheri meetodi getPage väljakutse kutsub välja kontrolleri meetodi render ja tagastab selle meetodi väljakutse tulemuse. Nagu te juba eelmisest õppetükist teate, meetod render tagastab kontrolleris klassi Page objekti.

Siin on meie klassi Dispatcher mustand:

<?php namespace Core; class Dispatcher { public function getPage(Track $track) { ...kood return kontroller -> render(parameetrid); } } ?>

Kasutades minu mustandit, implementeerige kirjeldatud klass Dispatcher. Kontrollige selle tööd. Raskuste korral vaadake lähtekoodi minu tehtud õpperaamistiku failidest.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu