⊗ppMVDFmDs 29 of 35 menu

Udvikling af en dispatcher i dit eget MVC-framework

Lad os huske det nuværende indhold af filen index.php:

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

Som du kan se, returnerer vores router for nu et objekt af klassen Track, som indeholder navnet på controlleren, navnet på actionen og parametre fra adresselinjen. Derudover lavede vi i den forrige lektion en forælder til alle controllere.

Nu kan vi gøre det sådan, at der sker et kald til controllerens metode, hvis data er indeholdt i vores variabel $track.

Dette vil blive håndteret af en speciel klasse Dispatcher. Dispatcheren vil modtage et objekt af klassen Track og baseret på dets data oprette et objekt af den angivne klasse, kalde metoden i denne klasse og videregive parametre til denne metode.

Lad os tilføje kaldet til dispatcheren i filen index.php:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // din implementering af autoload }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); // Kald til dispatcher: $page = ( new Dispatcher ) -> getPage($track); ?>

Kaldet til metoden getPage af vores dispatcher vil kalde controllerens metode render og returnere det, som kaldet til denne metode returnerer. Som du allerede ved fra forrige lektion, returnerer metoden render i controlleren et objekt af klassen Page.

Her er udkastet til vores klasse Dispatcher:

<?php namespace Core; class Dispatcher { public function getPage(Track $track) { ...kode return controller -> render(parametre); } } ?>

Brug mit udkast til at implementere den beskrevne klasse Dispatcher. Test dens funktion. Hvis du har problemer, kan du kigge i kildekoden i filerne fra mit lavede undervisningsframework.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis