PHP ရှိ MVC အတွင်း၌ လမ်းကြောင်းများတွင် parameter များအသုံးပြုခြင်း

ဖော်ပြခဲ့သည်များ၏ အသုံးချမှုကို လက်တွေ့ဘဝဥပမာတစ်ခုပေါ်တွင် ကြည့်ကြပါစို့။ ကျွန်ုပ်တို့၏ PageController တွင် စာမျက်နှာများစာရင်းပါဝင်သည်ဟု ဆိုကြပါစို့ (ဤဒေတာများကို model မှ ပေးပို့သင့်သော်လည်း model များကို ကျွန်ုပ်တို့မှ မလေ့လာရသေးသောကြောင့်၊ လောလောဆယ် ဒေတာများကို controller ထဲတွင် သိမ်းထားလိုက်ကြပါစို့)။

project/controllers/PageController.php<?php
  namespace Project\Controllers;
  use Core\Controller;
  
  class PageController extends Controller
  {
    private $pages;
    
    public function __construct()
    {
      $this->pages = [
        1 => 'page 1',
        2 => 'page 2',
        3 => 'page 3',
      ];
    }
  }
?>

show လုပ်ဆောင်ချက်တစ်ခုကို ဖန်တီးကြပါစို့။ ထို လုပ်ဆောင်ချက်သည် အမှတ်စဉ်သတ်မှတ်ထားသော (id) စာမျက်နှာတစ်ခုကို ဖန်သားပြင်ပေါ်သို့ ရိုက်ထုတ်ပေးမည်ဖြစ်သည်။

project/controllers/PageController.php<?php
  namespace Project\Controllers;
  use Core\Controller;
  
  class PageController extends Controller
  {
    private $pages;
    
    public function __construct()
    {
      $this->pages = [
        1 => 'page 1',
        2 => 'page 2',
        3 => 'page 3',
      ];
    }
    
    public function show()
    {
      // ဤနေရာတွင် အမှတ်စဉ်သတ်မှတ်ထားသော စာမျက်နှာတစ်ခုကို ရိုက်ထုတ်မည်
    }
  }
?>

/page/1/ လိပ်စာသို့ ဆက်သွယ်သည့်အခါ ပထမစာမျက်နှာ၏စာသားများကို ရိုက်ထုတ်ပါစေ။ /page/2/ လိပ်စာသို့ ဆက်သွယ်သည့်အခါ - ဒုတိယစာမျက်နှာ၏စာသားများကို ရိုက်ထုတ်ပါစေ။ ထို့နည်းတူဆက်လက်၍ ဖြစ်ပါစေ။ သင့်လျော်သော လမ်းကြောင်းတစ်ခုကို ဖန်တီးကြပါစို့။

/project/config/routes.php<?php
  use \Core\Route;
  
  return [
    new Route('/page/:id/', 'page', 'show'),
  ];
?>

ဖော်ပြထားသော show method ကို အကောင်အထည်ဖော်ကြပါစို့။

project/controllers/PageController.php<?php
  namespace Project\Controllers;
  use Core\Controller;
  
  class PageController extends Controller
  {
    private $pages;
    
    public function __construct()
    {
      $this->pages = [
        1 => 'page 1',
        2 => 'page 2',
        3 => 'page 3',
      ];
    }
    
    public function show($params)
    {
      echo $this->pages[ $params['id'] ]; // အမှတ်စဉ်အလိုက် စာမျက်နှာကို ရိုက်ထုတ်သည်
    }
  }
?>
Задание 1

UserController controller ကို အကောင်အထည်ဖော်ပါ။ အောက်ပါစာရင်းကို ပါဝင်စေပါ။

php<?php
  $this->users = [
    1 => ['name'=>'user1', 'age'=>'23', 'salary' => 1000],
    2 => ['name'=>'user2', 'age'=>'24', 'salary' => 2000],
    3 => ['name'=>'user3', 'age'=>'25', 'salary' => 3000],
    4 => ['name'=>'user4', 'age'=>'26', 'salary' => 4000],
    5 => ['name'=>'user5', 'age'=>'27', 'salary' => 5000],
  ];
?>
Задание 2

UserController controller ထဲတွင်၊ show လုပ်ဆောင်ချက်ကို လုပ်ပါ။ ထိုလုပ်ဆောင်ချက်သည် သတ်မှတ်ထားသော id အတွက် user တစ်ဦးကို ရိုက်ထုတ်ပေးမည်ဖြစ်သည်။ ထိုလုပ်ဆောင်ချက်ကို အောက်ပါပုံစံရှိသော လိပ်စာဖြင့် ဝင်ရောက်အသုံးပြုနိုင်ပါစေ။ /user/:id/.

Задание 3

UserController controller ထဲတွင်၊ info လုပ်ဆောင်ချက်ကို လုပ်ပါ။ ထိုလုပ်ဆောင်ချက်သည် သတ်မှတ်ထားသော user ၏ အမည် သို့မဟုတ် အသက်ကို ရိုက်ထုတ်ပေးမည်ဖြစ်သည်။ ထို လုပ်ဆောင်ချက်ကို အောက်ပါပုံစံရှိသော လိပ်စာဖြင့် ဝင်ရောက်အသုံးပြုနိုင်ပါစေ။ /user/:id/:key/၊ ထို့အထဲတွင် key သည် 'name'၊ 'age' သို့မဟုတ် 'salary' တန်ဖိုးများကို ရရှိမည်ဖြစ်သည်။

Задание 4

UserController controller ထဲတွင်၊ all လုပ်ဆောင်ချက်ကို လုပ်ပါ။ ထိုလုပ်ဆောင်ချက်သည် user အားလုံး၏စာရင်းကို ဖန်သားပြင်ပေါ်သို့ ရိုက်ထုတ်ပေးမည်ဖြစ်သည်။ ထိုလုပ်ဆောင်ချက်ကို အောက်ပါပုံစံရှိသော လိပ်စာဖြင့် ဝင်ရောက်အသုံးပြုနိုင်ပါစေ။ /user/all/ (ဤနေရာတွင် မည်သည့် parameter မျှမပါဝင်ပါ)

Задание 5

UserController controller ထဲတွင်၊ first လုပ်ဆောင်ချက်ကို လုပ်ပါ။ ထိုလုပ်ဆောင်ချက်သည် ပထမ N ဦးသော user များ၏စာရင်းကို ဖန်သားပြင်ပေါ်သို့ ရိုက်ထုတ်ပေးမည်ဖြစ်သည်။ ထိုလုပ်ဆောင်ချက်ကို အောက်ပါပုံစံရှိသော လိပ်စာဖြင့် ဝင်ရောက်အသုံးပြုနိုင်ပါစေ။ /user/first/:n/၊ ထို့အထဲတွင် parameter အတွင်း ဖန်သားပြင်ပေါ်သို့ ရိုက်ထုတ်ရမည့် user များ၏ အရေအတွက်ကို ဖော်ပြမည်ဖြစ်သည်။