လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အဆင့်မြင့် - routing system ကို Init function တွင်မည်သို့ configure လုပ်ရမည်နည်း

အဆင့်မြင့် - routing system ကို Init function တွင်မည်သို့ configure လုပ်ရမည်နည်း

gitbox 2025-05-28

မျက်မှောက်ခေတ် Web Development တွင် routing systems သည်အရေးပါသောအခန်းကဏ် play မှပါ 0 င်သည်။ URL လိပ်စာအရအသုံးပြုသူတောင်းဆိုချက်များကိုသက်ဆိုင်ရာ controller နှင့်နည်းလမ်းကိုဖြေရှင်းရန်တာ 0 န်ရှိသည်။ PHP တွင်မူဘောင်များသို့မဟုတ်စိတ်ကြိုက်စနစ်များသည်လမ်းကြောင်းပြင်ဆင်မှု၏လုပ်ဆောင်နိုင်မှုကိုပေးသည်။ ပိုမိုပြောင်းလွယ်ပြင်လွယ်နှင့်ထိန်းသိမ်းရန်တောင်းဆိုရန်တောင်းဆိုနိုင်ရန်အတွက်ကျွန်ုပ်တို့သည်ပုံမှန်အားဖြင့် routing configuration ကို init function အတွက် Init function တွင်နေရာချထားသည်။

ဤဆောင်းပါးသည်အတိမ်အနက်ကိုလေ့လာနိုင်သည်။ PHP ၏ Int-Inform လုပ်ဆောင်ချက်များကို PHP's Intime International ကို configure လုပ်ရန်နှင့်ပိုမိုထိရောက်သောကုဒ်ဖွဲ့စည်းပုံကိုအကောင်အထည်ဖော်ရန် Configure လုပ်နည်း။

1 ။ Init function တစ်ခု ကဘာလဲ။

ဆိုတဲ့အရာမှာ Init function ကိုဆိုတဲ့နာမည်ကပြသတဲ့အနေဖြင့်ပရိုဂရမ်စတင်ရန်အတွက် entry function တစ်ခုဖြစ်ပါတယ်။ PHP တွင်အများအားဖြင့်လျှောက်လွှာ၏ startup လုပ်ထုံးလုပ်နည်းတွင် inst function သည်လိုအပ်သော configuration နှင့် Intience နှင့် Intience နှင့် Intience လုပ်ငန်းများလုပ်ဆောင်လိမ့်မည်။ ၎င်း၏အဓိကလုပ်ဆောင်ချက်မှာပရိုဂရမ်၏လည်ပတ်မှုပတ် 0 န်းကျင်ကိုပြင်ဆင်ရန်နှင့်နောက်ဆက်တွဲစီးပွားရေးယုတ္တိဗေဒကိုထောက်ပံ့ရန်ဖြစ်သည်။ routing systems များတွင် init function ၏အခန်းကဏ် is သည်အထူးအရေးကြီးသည်။ ၎င်းသည်ပုံမှန်အားဖြင့် routing rules များကို configure လုပ်လေ့ရှိပြီး URLs များကိုခွဲခြမ်းစိတ်ဖြာရန်နှင့်သက်ဆိုင်သောထိန်းချုပ်သူများနှင့်နည်းလမ်းများကိုသတ်မှတ်ရန်အသုံးပြုသည်။

2 ။ PHP routing system ၏အခြေခံသဘောတရားများ

PHP routing system ၏အခြေခံလုပ်ငန်းတာဝန်မှာအသုံးပြုသူမှတောင်းဆိုထားသော URL ကိုသတ်သတ်မှတ်မှတ် controller နည်းလမ်းကိုမြေပုံဆွဲရန်ဖြစ်သည်။ ရိုးရှင်းသော routing system တွင်များသောအားဖြင့်အစိတ်အပိုင်းများစွာရှိသည်။

  • တောင်းဆိုထားသော URL : အသုံးပြုသူသည် browser တွင်အသုံးပြုသူဆက်သွယ်မှုလိပ်စာ။

  • routing rules : URL နှင့် Controller နည်းလမ်းအကြားစာပေးစာယူ။

  • Controller - တောင်းဆိုမှုကိုပြုပြင်ခြင်းနှင့်တုန့်ပြန်မှုများကိုပြန်ပို့ခြင်းအတွက်ယုတ္တိယူနစ်။

  • Method - Controller တွင်သတ်သောလုပ်ဆောင်မှုများ။

ပုံမှန်လမ်းကြောင်းမှန်စည်းမျဉ်းကဒီလိုမျိုးဖြစ်လိမ့်မယ်။

 $route->add('/home', 'HomeController@index');
$route->add('/user/{id}', 'UserController@show');

အထက်ဖော်ပြပါဥပမာတွင်အသုံးပြုသူလက်လှမ်းမီသည့်အခါ / အိမ် / အိမ်တွင် အိမ် အညွှန်း ကိန်းကိုအစပျိုးလိမ့်မည်။ သုံးစွဲသူ / {ID} ကို ဝင်ရောက်ကြည့်ရှုသောအခါ Usercontrollerပြပွဲကို အစပျိုးခြင်းနှင့် ID parameter သည်နောက်ဆက်တွဲထုတ်ပြန်လိမ့်မည်။

3 ။ PHP တွင် Init function ကို အသုံးပြု. routing configure လုပ်နည်း။

ကျွန်ုပ်တို့တွင်ရိုးရှင်းသော PHP application တစ်ခုရှိသည်ဆိုပါစို့

3.1 routing class ကိုဖန်တီးပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည် routing rules အားလုံးကိုစီမံရန် routing class တစ်ခုလိုအပ်သည်။ ဤအတန်းတွင်လမ်းကြောင်းစည်းမျဉ်းများထည့်သွင်းခြင်း, ကိုက်ညီသောတောင်းဆိုမှုများကိုဖြည့်စွက်ခြင်းနှင့်သက်ဆိုင်ရာ controller နည်းလမ်းကိုကွပ်မျက်ခြင်း၏လုပ်ဆောင်ချက်များပါ 0 င်သင့်သည်။

 class Router {
    protected $routes = [];

    public function add($route, $action) {
        $this->routes[$route] = $action;
    }

    public function dispatch($url) {
        foreach ($this->routes as $route => $action) {
            if ($url == $route) {
                list($controller, $method) = explode('@', $action);
                return (new $controller)->$method();
            }
        }
        return "404 Not Found";
    }
}

3.2 routing စည်းမျဉ်းစည်းကမ်းများကို init function တွင် configure လုပ်ခြင်း

ထို့နောက်ကျွန်ုပ်တို့သည်လမ်းကြောင်းဆိုင်ရာစည်းမျဉ်းစည်းကမ်းများကို init function တွင် configure လုပ်နိုင်သည်။ Init function သည် routing system ကိုစတင်ရန်နှင့်တောင်းဆိုမှုများအားလုံးကိုကိုင်တွယ်ရန်တာ 0 န်ရှိသည်။

 function init() {
    $router = new Router();

    // လမ်းကြောင်းစည်းမျဉ်းစည်းကမ်းများ configure
    $router->add('/home', 'HomeController@index');
    $router->add('/user/{id}', 'UserController@show');
    
    // လက်ရှိတောင်းဆိုထားတဲ့ကိုရယူပါ URL
    $url = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);

    // trigger routing ကိုက်ညီ
    echo $router->dispatch($url);
}

အထက်ဖော်ပြပါကုဒ်တွင် Intide function သည် router အရာဝတ်ထုတစ်ခုကို ဦး စွာဖန်တီးပြီး $ road () method () method မှတဆင့် routing rules များကိုထည့်သွင်းထားသည်။ ထို့နောက်လက်ရှိတောင်းဆိုမှု၏ URL ကို $ _server ['ayserii'] မှရရှိသည်။

4 ။ ပိုမိုပြောင်းလွယ်ပြင်လွယ်သောလမ်းကြောင်းနှင့်ကိုက်ညီမှုကိုမည်သို့အောင်မြင်ရန်နည်း။

routing system ကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်စေရန်အတွက်ကျွန်ုပ်တို့သည် dynamic routing rules များအတွက်အထောက်အပံ့ကိုထည့်သွင်းနိုင်သည်။ ဥပမာအားဖြင့်အသုံးပြုသူ / user / {ID} {ID} {ID}} use} သည် URL မှ ID parameter ကိုထုတ်ယူနိုင်ပြီး Controller Method သို့သွားရန်လမ်းကြောင်းစနစ်သည် id parameter ကိုထုတ်ယူနိုင်ပြီး၎င်းကို Controller နည်းလမ်းသို့ကူးပြောင်းနိုင်သည့်အတွက် routing system သည် id id parameter ကိုထုတ်ယူနိုင်ပြီး Controller Method သို့ဖြတ်သွားသင့်သည်။

4.1 dynamic parameters တွေကိုကိုက်ညီဖို့ပုံမှန်အသုံးအနှုန်းတွေကိုသုံးပါ

 class Router {
    protected $routes = [];

    public function add($route, $action) {
        $this->routes[] = ['route' => $route, 'action' => $action];
    }

    public function dispatch($url) {
        foreach ($this->routes as $route) {
            $pattern = preg_replace('/\{(\w+)\}/', '(\w+)', $route['route']);
            if (preg_match("#^$pattern$#", $url, $matches)) {
                array_shift($matches); // ပထမ ဦး ဆုံးပွဲစဉ်ကိုဖျက်ပါ(URLသူ့ဟာသူ)
                list($controller, $method) = explode('@', $route['action']);
                return (new $controller)->$method(...$matches);
            }
        }
        return "404 Not Found";
    }
}

ဤပြုပြင်ထားသော router class တွင်ပုံမှန်အသုံးအနှုန်းများကို URL ရှိ parameters တွေကိုပုံမှန်ဖော်ပြရန်ပုံမှန်အသုံးအနှုန်းများကိုအသုံးပြုသည်။ ဥပမာအားဖြင့် / user / {ID} ကို ^ / user / (\ w +) $ သို့ ပြောင်းလဲလိမ့်မည်

5 ။ နမူနာကုဒ်ကိုအပြည့်အဝ

အထက်ပါကိုပေါင်းစပ်ခြင်း, အောက်ပါတို့သည် PHP routing system ၏ဥပမာတစ်ခုဖြစ်သည်။

 class Router {
    protected $routes = [];

    public function add($route, $action) {
        $this->routes[] = ['route' => $route, 'action' => $action];
    }

    public function dispatch($url) {
        foreach ($this->routes as $route) {
            $pattern = preg_replace('/\{(\w+)\}/', '(\w+)', $route['route']);
            if (preg_match("#^$pattern$#", $url, $matches)) {
                array_shift($matches); // ပထမ ဦး ဆုံးပွဲစဉ်ကိုဖျက်ပါ(URLသူ့ဟာသူ)
                list($controller, $method) = explode('@', $route['action']);
                return (new $controller)->$method(...$matches);
            }
        }
        return "404 Not Found";
    }
}

class HomeController {
    public function index() {
        return "Welcome to the Home Page!";
    }
}

class UserController {
    public function show($id) {
        return "User Profile for ID: $id";
    }
}

function init() {
    $router = new Router();
    $router->add('/home', 'HomeController@index');
    $router->add('/user/{id}', 'UserController@show');
    
    $url = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    echo $router->dispatch($url);
}

// စတင်ခြင်းနှင့် routing processing လုပ်ဆောင်ပါ
init();

6 ။ နိဂုံးချုပ်

routing configuration ကို init function တွင်နေရာချထားခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ပြောင်းလွယ်ပြင်လွယ်တောင်းဆိုမှုထုတ်ယူခြင်းကိုပိုမိုအဆင်ပြေစွာလုပ်ဆောင်နိုင်သည်။ ၎င်းသည်ကုဒ်၏ထိန်းသိမ်းမှုကိုပိုမိုကောင်းမွန်စေသည်သာမကလိုအပ်သော configururations အားလုံးကိုအစီအစဉ်၏အစတွင်ပြီးစီးခဲ့သည်။ PHP ရှိ routing system ကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်အကောင်အထည်ဖော်ရန်ဤဆောင်းပါးသည်သင့်ကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်အကောင်အထည်ဖော်ရန်ကူညီနိုင်သည်ဟုမျှော်လင့်ပါ။