⊗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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել