⊗ppMVDFmDs 29 of 35 menu

Өз MVC фреймворкіңіздегі диспетчерді әзірлеу

index.php файлының ағымдағы мазмұнын еске түсірейік:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // сіздің автозагрузканы іске асыруыңыз }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); ?>

Көріп отырғаныңыздай, әзірге біздің роутер Track класының объектісін қайтарады, ол басқарушының атын, әрекет атын және мекен-жай жолынан алынған параметрлерді қамтиды. Сонымен қатар, алдыңғы сабақта біз барлық басқарушылардың ата-анасын жасадық.

Енді біз $track айнымалымыздағы деректері бар басқарушы әдісін шалуды жүзеге асыра аламыз.

Мұны арнайы Dispatcher класы істейді. Диспетчер Track класының объектісін алып, оның деректері бойынша көрсетілген кластың объектісін жасалып, сол кластың әдісін шалып, осы әдіске параметрлерді жібереді.

index.php файлына диспетчерді шалуды қосамыз:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // сіздің автозагрузканы іске асыруыңыз }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); // Диспетчерді шалу: $page = ( new Dispatcher ) -> getPage($track); ?>

Біздің диспетчердің getPage әдісін шалу басқарушының render әдісін шалып, осы әдісті шалу нәтижесін қайтарады. Алдыңғы сабақтан сіз білесіз, басқарушының render әдісі Page класының объектісін қайтарады.

Міне, біздің Dispatcher класымыздың дайындамасы:

<?php namespace Core; class Dispatcher { public function getPage(Track $track) { ...код return басқарушы -> render(параметрлер); } } ?>

Менің дайындамамды пайдаланып, сипатталған Dispatcher класын енгізіңіз. Оның жұмысын тексеріңіз. Қиындық туындаған жағдайда мен жасаған оқу фреймворкінің файлдарындағы бастапқы кодты қараңыз.

Қазақ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау