မိမိကိုယ်ပိုင် MVC Framework တွင် Router တစ်ခု ဖန်တီးခြင်း

ယခုသင် Router တစ်ခုကို ဖန်တီးရန် လိုအပ်ပါသည်။ ၎င်းသည် routes array ကိုယူ၍ တောင်းဆိုထားသော URL ကိုယူကာ အဆိုပါ URL နှင့် ကိုက်ညီသော route မည်သည့်အရာဖြစ်သည်ကို ဆုံးဖြတ်ပေးမည့် class တစ်ခုဖြစ်ပါသည်။ သင့်လျော်သော route ကို တွေ့ရှိပြီးနောက် ကျွန်ုပ်တို့၏ class သည် route ၏ parameter များနှင့် ကိုက်ညီသော URL အစိတ်အပိုင်းများကို ရယူရပါမည်။

ကျွန်ုပ်တို့၏ Router သည် ၎င်း၏ရလဒ်အဖြစ် ထို တောင်းဆိုချက်အတွက် ခေါ်ယူရမည့် controller အမည်၊ action အမည်နှင့် URL မှ parameter များပါဝင်သည့် Track class ၏ object တစ်ခုကို ပြန်ပေးပါစေ။

ကျွန်ုပ်တို့၏ class Track တွင် ဖတ်ရှုရန်သာ ခွင့်ပြုထားသော controller, action နှင့် params properties များ ရှိပါစေ။

/core/Track.php<?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/ ကို ရိုက်ထည့်ထားသည်ဟု ဆိုကြပါစို့။ ကျွန်ုပ်တို့တွင် ဤလိပ်စာနှင့် ကိုက်ညီသော route တစ်ခု ရှိပါစေ။

/project/config/routes.php<?php
  new Route('/test/:var1/:var2/', 'test', 'index');
?>

ဆိုလိုသည်မှာ controller အမည်သည် test ဖြစ်မည်၊ action အမည်သည် index ဖြစ်မည်၊ ထို့အပြင် parameter array သည် အောက်ပါအတိုင်းဖြစ်လိမ့်မည်။

php<?php
  ['var1' => 1, 'var2' => 2]
?>

ဤသင်ခန်းစာ၏ ရည်ရွယ်ချက်မှာ Track class ၏ object ကို ပြန်ပေးသော Router class ကို ရေးသားရန်ဖြစ်သည်။ ကျန်သည်များသည် ယခုအချိန်တွင် ကျွန်ုပ်တို့နှင့် မသက်ဆိုင်ပါ။ ဤ class ကို စတင်ရေးသားကြပါစို့။

လက်တွေ့လုပ်ဆောင်ချက်များ

Задание 1

ကျွန်ုပ်၏ class Track ၏ကုဒ်ကို ကူးယူ၍ /core/Track.php ဖိုင်ထဲတွင် ထားရှိပါ။