ඔබගේම MVC රාමුවේ රවුටර් ක්‍රියාත්මක කිරීම

අපගේ කැඳවීම්වලට අනුව දැන් අපි Router පන්තියේ හැඩතලය ලියමු:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    private $routes;
    
    public function getTrack($routes, $uri)
    {
      // මෙහි කේතය ඇත
    }
  }
?>

getTrack ක්‍රමයේදී, දී ඇති $uri ට ගැලපෙන රවුට් කුමක්දැයි අප තීරණය කළ යුතුය. මෙය සිදු කිරීම සඳහා අපගේ රවුට් අරාව ලූපයක් සමඟ හරස් කළ යුතුය:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        // $uri සහ $route පරීක්ෂා කිරීම
      }
    }
  }
?>

යම් රවුට් එකක් URI ට ගැලපෙන්නේ නම්, අපි එම URI වලින් රවුට් පරාමිතීන්ගේ අගයන් ලබා ගත යුතුය සහ Track පන්තියේ වස්තුවක් ආපසු ලබා දිය යුතුය:

/core/Router.php<?php
  namespace Core;
  
  class Router
  {
    public function getTrack($routes, $uri)
    {
      foreach ($routes as $route) {
        if (රවුට් සහ URI ගැලපුම පරීක්ෂා කිරීම) {
          $params = ; // uri වලින් පරාමිතීන් ලබා ගත යුතුය
          return new Track($route->controller, $route->action, $params);
        }
      }
      
      return new Track('error', 'notFound'); // කිසිදු රවුට් එකක් ගැලපෙන්නේ නම්
    }
  }
?>
Задание 1

මගේ Router පන්ති හැඩතලය පිටපත් කර එය /core/Router.php ගොනුවේ තබන්න.

Задание 2

Track පන්තියේ වස්තුවක් ආපසු ලබා දෙන Router පන්තිය විස්තර කළ පරිදි ක්‍රියාත්මක කරන්න. ඔබට දුෂ්කරතා ඇත්නම් (එය ඉතා විය හැකිය), ඔබ භාවිතය අධ්‍යයනය කළ MVC රාමුවේ මූලාශ්‍ර කේතය බලන්න. එහි Router පන්තියේදී ඔබට ක්‍රියාත්මක කිරීමේ නොමැති කොටස සහ ඒ සඳහා මගේ අදහස් සොයා ගත හැකිය.