Öz MVC çərçivəsində routerin hazırlanması
İndi siz router hazırlamalısınız. O, marşrutlar massivini götürəcək, sorğu edilən URL-i götürəcək və hansı marşrutun verilmiş url-ə uyğun olduğunu təyin edəcək bir sinifdir. Uyğun marşrut tapıldıqdan sonra bizim sinifimiz URL-in, marşrut parametrlərinə uyğun gələn hissələrini əldə etməlidir.
Qoy bizim routerimiz nəticə olaraq,
bu sorğu üçün çağırılmalı olan nəzarətçinin adını,
əməliyyatın adını və URL-dən olan parametrləri ehtiva edən
Track sinfi obyektini qaytarsın.
Qoy bizim Track sinfimiz yalnız oxumaq üçün əlçatan olan
controller, action və params xüsusiyyətlərinə malik olsun:
<?php
namespace Core;
class Track
{
private $controller;
private $action;
private $params;
public function __construct($controller, $action, $params)
{
$this->controller = $controller;
$this->action = $action;
$this->params = $params;
}
public function __get($property)
{
return $this->$property;
}
}
?>
Nümunə
Nümunə üçün, fərz edək ki, ünvan sətirinə
/test/1/2/ yazılıb. Fərz edək ki, bizdə bu ünvana uyğun gələn bir marşrut var:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Bu o deməkdir ki, nəzarətçinin adı test olacaq,
əməliyyatın adı - index, parametrlər massivi isə
aşağıdakı kimi olacaq:
<?php
['var1' => 1, 'var2' => 2]
?>
Bu dərsin məqsədi Track sinfinin obyektini qaytaran
Router sinfini yazmaqdır.
Qalanları hələlik bizi aid etmir. Gəlin bu sinfi yazmağa başlayaq.
Praktiki tapşırıqlar
Mənim Track sinfimin kodunu köçürün
və onu
/core/Track.php faylında yerləşdirin.