როუტერის შემუშავება საკუთარ MVC ფრეიმვორქში
ახლა თქვენ უნდა შეიმუშაოთ როუტერი. ის წარმოადგენს კლასს, რომელიც აიღებს როუტების მასივს, აიღებს მოთხოვნილ URL-ს, და განსაზღვრის, რომელი როუტი შეესაბამება მოცემულ URL-ს. შესაბამისი როუტის პოვნის შემდეგ ჩვენმა კლასმა უნდა მიიღოს URL-ის ის ნაწილები, რომლებიც შეესაბამება როუტის პარამეტრებს.
ჩვენი როუტერი თავის შედეგად დააბრუნებს
Track კლასის ობიექტს, რომელიც შეიცავს
კონტროლერის სახელს, რომელიც უნდა გაეშვას
მოცემულ მოთხოვნაზე, მოქმედების სახელს და პარამეტრებს URL-დან.
ჩვენი Track კლასს ჰქონდეს თვისებები
controller, action და params,
მხოლოდ წაკითხვისთვის:
<?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;
}
}
?>
მაგალითი
მაგალითისთვის, დავუშვათ მისამართების ზოლში აკრეფილია
/test/1/2/. დავუშვათ, გვაქვს როუტი,
რომელიც შეესაბამება ამ მისამართს:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
ეს ნიშნავს, რომ კონტროლერის სახელი იქნება test,
მოქმედების სახელი - index, ხოლო პარამეტრების მასივი
იქნება შემდეგი:
<?php
['var1' => 1, 'var2' => 2]
?>
ამ გაკვეთილის მიზანია დავწეროთ Router კლასი,
რომელიც დააბრუნებს Track კლასის ობიექტს.
დანარჩენი ჩვენ ჯერ არ ეხება. მოდით შევუდგეთ
ამ კლასის წერას.
პრაქტიკული ამოცანები
დააკოპირეთ ჩემი Track კლასის კოდი
და განათავსეთ იგი ფაილში
/core/Track.php.