Kendi MVC Framework'ümüzde Router Uygulaması

Şimdi, çağrılarımıza uygun olarak Router sınıfının taslağını yazalım:

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

getTrack metodunda, hangi rotanın verilen $uri'ye karşılık geldiğini belirlemeliyiz. Bunun için rotalar dizimizi bir döngü ile tarayacağız:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        // $uri ve $route kontrolü
      }
    }
  }
?>

Eğer bir rota URI ile eşleşiyorsa, bu URI'den rota parametrelerinin değerlerini almalı ve Track sınıfının bir nesnesini döndürmeliyiz:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (rota ve URI eşleşme kontrolü) {
          $params = ; // uri'den parametreler alınmalı
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // eğer hiçbir rota uymazsa
    }
  }
?>
Задание 1

Router sınıfımın taslağını kopyalayın ve /core/Router.php dosyasına yerleştirin.

Задание 2

Router sınıfını, sonuç olarak Track sınıfının bir nesnesini döndürecek şekilde uygulayın. Eğer zorluk yaşarsanız (ki oldukça muhtemeldir), MVC kullanımını öğrendiğiniz framework'ün kaynak koduna bakın. Orada Router sınıfında, uygulamanın eksik kısmını ve benim ona yönelik yorumlarımı bulacaksınız.