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