⊗ppMVDFmDs 29 of 35 menu

Dispečera izstrāde savā MVC framewrok

Atcerēsimies pašreizējo faila index.php saturu:

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

Kā jūs redzat, pagaidām mūsu maršrutētājs atgriež klases Track objektu, kas satur kontrollera nosaukumu, darbības nosaukumu un parametrus no adreses virknes. Turklāt iepriekšējā nodarbībā mēs izveidojām visu kontrolleru vecāku.

Tagad mēs varam panākt, lai notiktu kontrollera metodes izsaukšana, kuras dati tiek glabāti mūsu mainīgajā $track.

To veiks īpaša klase Dispatcher. Dispečers saņems klases Track objektu un pēc tā datiem izveidos norādītās klases objektu, izsauks šīs klases metodi, padodot šajā metodē parametrus.

Pievienosim dispečera izsaukšanu failā index.php:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // jūsu autoload implementācija }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); // Dispečera izsaukšana: $page = ( new Dispatcher ) -> getPage($track); ?>

Mūsu dispečera metodes getPage izsaukšana izsauks kontrollera metodi render un atgriezīs to, ko atgriezīs šīs metodes izsaukums. Kā jūs jau zināt no iepriekšējās nodarbības, kontrollera metode render atgriež klases Page objektu.

Lūk, mūsu klases Dispatcher sagatave:

<?php namespace Core; class Dispatcher { public function getPage(Track $track) { ...kods return kontrolleris -> render(parametri); } } ?>

Izmantojot manu sagatavi, realizējiet aprakstīto klasi Dispatcher. Pārbaudiet tās darbību. Grūtību gadījumā apskatiet izejas kodu manis izveidotā mācību framewrok failos.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt