Ö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.