अपने 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

वर्णित Router क्लास को लागू करें, जिसका परिणाम Track क्लास की एक ऑब्जेक्ट वापस करता हो। यदि आपको कठिनाई होती है (जो काफी संभावित है), तो उस स्रोत कोड में देखें जिस MVC के उपयोग से आपने सीखा था, उस फ्रेमवर्क में। वहाँ Router क्लास में आपको कार्यान्वयन का गायब हिस्सा और उस पर मेरी टिप्पणियाँ मिलेंगी।