⊗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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა