PHP ရှိ MVC အတွင်း၌ လမ်းကြောင်းများတွင် parameter များအသုံးပြုခြင်း
ဖော်ပြခဲ့သည်များ၏ အသုံးချမှုကို လက်တွေ့ဘဝဥပမာတစ်ခုပေါ်တွင် ကြည့်ကြပါစို့။ ကျွန်ုပ်တို့၏
PageController တွင် စာမျက်နှာများစာရင်းပါဝင်သည်ဟု ဆိုကြပါစို့
(ဤဒေတာများကို model မှ ပေးပို့သင့်သော်လည်း
model များကို ကျွန်ုပ်တို့မှ မလေ့လာရသေးသောကြောင့်၊ လောလောဆယ်
ဒေတာများကို controller ထဲတွင် သိမ်းထားလိုက်ကြပါစို့)။
<?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) စာမျက်နှာတစ်ခုကို
ဖန်သားပြင်ပေါ်သို့ ရိုက်ထုတ်ပေးမည်ဖြစ်သည်။
<?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/ လိပ်စာသို့ ဆက်သွယ်သည့်အခါ -
ဒုတိယစာမျက်နှာ၏စာသားများကို ရိုက်ထုတ်ပါစေ။ ထို့နည်းတူဆက်လက်၍
ဖြစ်ပါစေ။ သင့်လျော်သော လမ်းကြောင်းတစ်ခုကို ဖန်တီးကြပါစို့။
<?php
use \Core\Route;
return [
new Route('/page/:id/', 'page', 'show'),
];
?>
ဖော်ပြထားသော show method ကို အကောင်အထည်ဖော်ကြပါစို့။
<?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'] ]; // အမှတ်စဉ်အလိုက် စာမျက်နှာကို ရိုက်ထုတ်သည်
}
}
?>
UserController controller ကို အကောင်အထည်ဖော်ပါ။
အောက်ပါစာရင်းကို ပါဝင်စေပါ။
<?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],
];
?>
UserController controller ထဲတွင်၊
show လုပ်ဆောင်ချက်ကို လုပ်ပါ။ ထိုလုပ်ဆောင်ချက်သည်
သတ်မှတ်ထားသော id အတွက် user တစ်ဦးကို ရိုက်ထုတ်ပေးမည်ဖြစ်သည်။ ထိုလုပ်ဆောင်ချက်ကို
အောက်ပါပုံစံရှိသော လိပ်စာဖြင့် ဝင်ရောက်အသုံးပြုနိုင်ပါစေ။
/user/:id/.
UserController controller ထဲတွင်၊
info လုပ်ဆောင်ချက်ကို လုပ်ပါ။ ထိုလုပ်ဆောင်ချက်သည်
သတ်မှတ်ထားသော user ၏ အမည် သို့မဟုတ် အသက်ကို ရိုက်ထုတ်ပေးမည်ဖြစ်သည်။ ထို
လုပ်ဆောင်ချက်ကို အောက်ပါပုံစံရှိသော လိပ်စာဖြင့် ဝင်ရောက်အသုံးပြုနိုင်ပါစေ။
/user/:id/:key/၊ ထို့အထဲတွင် key
သည် 'name'၊ 'age'
သို့မဟုတ် 'salary' တန်ဖိုးများကို ရရှိမည်ဖြစ်သည်။
UserController controller ထဲတွင်၊
all လုပ်ဆောင်ချက်ကို လုပ်ပါ။ ထိုလုပ်ဆောင်ချက်သည်
user အားလုံး၏စာရင်းကို ဖန်သားပြင်ပေါ်သို့ ရိုက်ထုတ်ပေးမည်ဖြစ်သည်။ ထိုလုပ်ဆောင်ချက်ကို
အောက်ပါပုံစံရှိသော လိပ်စာဖြင့် ဝင်ရောက်အသုံးပြုနိုင်ပါစေ။
/user/all/ (ဤနေရာတွင် မည်သည့် parameter မျှမပါဝင်ပါ)
UserController controller ထဲတွင်၊
first လုပ်ဆောင်ချက်ကို လုပ်ပါ။ ထိုလုပ်ဆောင်ချက်သည်
ပထမ N ဦးသော user များ၏စာရင်းကို ဖန်သားပြင်ပေါ်သို့ ရိုက်ထုတ်ပေးမည်ဖြစ်သည်။ ထိုလုပ်ဆောင်ချက်ကို
အောက်ပါပုံစံရှိသော လိပ်စာဖြင့် ဝင်ရောက်အသုံးပြုနိုင်ပါစေ။
/user/first/:n/၊ ထို့အထဲတွင် parameter အတွင်း
ဖန်သားပြင်ပေါ်သို့ ရိုက်ထုတ်ရမည့် user များ၏ အရေအတွက်ကို ဖော်ပြမည်ဖြစ်သည်။