⊗ppMVDFmDs 29 of 35 menu

Savo MVC karkaso Dispečerio kūrimas

Prisiminkime dabartinį failo index.php turinį:

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

Kaip matote, kol kas mūsų maršrutizatorius grąžina Track klasės objektą, kuriame yra kontrolerio pavadinimas, veiksmo pavadinimas ir parametrai iš adreso eilutės. Be to, ankstesnėje pamokoje mes sukūrėme visų kontrolerių tėvą.

Dabar mes galime padaryti taip, kad būtų iškviestas kontrolerio metodas, kurio duomenys yra saugomi mūsų kintamajame $track.

Už tai bus atsakinga speciali Dispatcher klasė. Dispečeris gaus Track klasės objektą ir pagal jo duomenis sukurs nurodyto klasės objektą, iškvieš tos klasės metodą, perduodamas į šį metodą parametrus.

Pridėkime dispečerio iškvietimą į failą index.php:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // jūsų autoloadinimo realizacija }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); // Dispečerio iškvietimas: $page = ( new Dispatcher ) -> getPage($track); ?>

Mūsų dispečerio metodo getPage iškvietimas iškvies kontrolerio metodą render ir grąžins tai, ką grąžino šio metodo iškvietimas. Kaip jau žinote iš ankstesnės pamokos, kontrolerio metodas render grąžina Page klasės objektą.

Štai mūsų Dispatcher klasės ruošinys:

<?php namespace Core; class Dispatcher { public function getPage(Track $track) { ...kodas return kontroleris -> render(parametrai); } } ?>

Naudodamiesi mano ruošiniu, realizuokite aprašytą Dispatcher klasę. Patikrinkite jos veikimą. Jei kyla sunkumų, pažiūrėkite pradinį kodą mano sukurtų mokymo karkaso failuose.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti