⊗ppMVDFmDs 29 of 35 menu

Utvikling av en dispatcher i ditt eget MVC-rammeverk

La oss huske innholdet i filen index.php for øyeblikket:

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

Som du ser, returnerer ruteren vår for øyeblikket et objekt av klassen Track, som inneholder navnet på kontrolleren, navnet på handlingen og parametrene fra adresselinjen. I tillegg laget vi i forrige leksjon en forelder for alle kontrollerne.

Nå kan vi gjøre det slik at metoden til kontrolleren blir kalt, med dataene som finnes i variabelen vår $track.

Dette vil bli håndtert av en spesiell klasse Dispatcher. Dispatcheren vil motta et objekt av klassen Track og basert på dens data opprette et objekt av den angitte klassen, kalle metoden til denne klassen, og sende parametrene inn i denne metoden.

La oss legge til kall til dispatcheren i filen index.php:

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

Kall til metoden getPage i dispatcheren vår vil kalle metoden render til kontrolleren og returnere det som dette metodekallet returnerer. Som du allerede vet fra forrige leksjon, returnerer metoden render til kontrolleren et objekt av klassen Page.

Her er skjelettet til klassen Dispatcher vår:

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

Bruk mitt skjelett og implementer den beskrevne klassen Dispatcher. Test dens funksjon. Hvis du støter på vanskeligheter, se kildekoden i filene til det pedagogiske rammeverket jeg har laget.

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