⊗ppMVDFmDs 29 of 35 menu

Dispatcherin kehittäminen omaan MVC-kehykseesi

Muistetaan tiedoston index.php nykyinen sisältö:

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

Kuten näet, reititin palauttaa meille luokan Track olion, joka sisältää kontrollerin nimen, toiminnon nimen ja parametrit osoiterivistä. Lisäksi edellisessä oppitunnissa teimme kaikkien kontrollereiden yläluokan.

Nyt voimme toteuttaa niin, että kutsutaan kontrollerin metodia, jonka tiedot sisältyvät muuttujaamme $track.

Tästä vastaa erityinen luokka Dispatcher. Dispatcher saa luokan Track olion ja sen tietojen perusteella luo määritetyn luokan olion, kutsuu luokan metodia, välittäen metodille parametrit.

Lisätään dispatcherin kutsu tiedostoon index.php:

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

Dispatcherimme metodin getPage kutsu käynnistää kontrollerin metodin render ja palauttaa sen, mitä kyseisen metodin kutsu palautti. Kuten jo tiedät edellisestä oppitunnista, kontrollerin metodi render palauttaa luokan Page olion.

Tässä on luokkamme Dispatcher runko:

<?php namespace Core; class Dispatcher { public function getPage(Track $track) { ...koodi return kontrolleri -> render(parametrit); } } ?>

Käyttäen luomaani runkoa toteuta kuvattu luokka Dispatcher. Tarkista sen toiminta. Vaikeuksien sattuessa katso lähdekoodia tekemästäni opetuskehyksestä.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää