⊗ppMVDFmRrIm 27 of 35 menu

Öz MVC çərçivəsində routerin realizasiyası

Indi isə bizim çağırışlarımıza uyğun olaraq Router sinfinin qablaşdırmasını yazaq:

<?php namespace Core; class Router { private $routes; public function getTrack($routes, $uri) { // burada kod olacaq } } ?>

getTrack metodunda biz müəyyən etməliyik ki, verilmiş $uri üçün marşrutlardan hansı uyğun gəlir. Bunun üçün marşrutlar massivini dövrə ilə yoxlamalıyıq:

<?php namespace Core; class Router { public function getTrack($routes, $uri) { foreach ($routes as $route) { // $uri və $route yoxlanışı } } } ?>

Əgər hansısa marşrut URI-ə uyğun gəlirsə, biz həmin URI-dən marşrut parametrlərinin dəyərlərini almalı və Track sinfinin obyektini qaytarmalıyıq:

<?php namespace Core; class Router { public function getTrack($routes, $uri) { foreach ($routes as $route) { if (marşrut və URI uyğunluq yoxlanışı) { $params = ; // uri-dən parametrləri almaq lazımdır return new Track($route->controller, $route->action, $params); } } return new Track('error', 'notFound'); // heç bir marşrut uyğun gəlməzsə } } ?>

Router sinfinin qablaşdırmasını köçürün və onu /core/Router.php faylında yerləşdirin.

Təsvir olunan Router sinfini realizasiya edin, nəticə olaraq Track sinfinin obyektini qaytaran. Əgər çətinlik çəksəniz (bu çox ehtimaldır), istifadəsini öyrəndiyiniz MVC çərçivəsinin mənbə koduna baxın. Orada Router sinfində realizasiyanın çatışmayan hissəsini və mənim ona şərhlərimi tapacaqsınız.

nlrutrhiuzl