Implementimi i router-it në MVC framework-un tuaj

Tani le të shkruajmë modelin e klasës Router në përputhje me thirrjet tona:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // këtu do të jetë kodi
    }
  }
?>

Në metodën getTrack ne duhet të përcaktojmë, cila prej rrugëve i përgjigjet këtij $uri. Për këtë është e nevojshme të kalojmë nëpër array-in tonë me rrugë me një cikël:

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

Nëse ndonjë rrugë i përgjigjet URI-së, ne duhet të marrim nga kjo URI vlerat e parametrave të rrugës dhe të kthejmë një objekt të klasës Track:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (kontrolli i përputhjes së rrugës dhe URI-së) {
          $params = ; // duhet marrë parametrat nga uri
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // nëse asnjë rrugë nuk përshtatet
    }
  }
?>
Задание 1

Kopjoni modelin tim të klasës Router dhe vendoseni atë në skedarin /core/Router.php.

Задание 2

Implementoni klasën e përshkruar Router, duke kthyer si rezultat një objekt të klasës Track. Nëse do të përballeni me vështirësi (gjë shumë e mundshme), shikoni kodin burimor të framework-ut me të cilin keni studiuar përdorimin e MVC. Aty në klasën Router do të gjeni pjesën që mungon të implementimit dhe komentet e mia për të.