Matumizi ya Vigezo katika Njia za MVC katika PHP
Wacha tuangalie matumizi ya yaliyoelezwa kwenye
mfano wa kuishi zaidi. Hebu kidhibiti chetu
PageController kiwe na safu ya kurasa
(data hii inapaswa kutolewa na model, lakini
bado hatujachambua models, kwa hivyo hebu data
kwa sasa ihifadhiwe kwenye kidhibiti):
<?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',
];
}
}
?>
Wacha tufanye kitendo show, ambacho
kitaonyesha kwenye skrini ukurasa wenye nambari
fulani (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()
{
// hapa tutaonyesha ukurasa wenye nambari fulani
}
}
?>
Hebu wakati wa kuhudumia anwani /page/1/
maandishi ya ukurasa wa kwanza yaonyeshwe, wakati
wa kuhudumia anwani /page/2/ -
maandishi ya ukurasa wa pili na kadhalika. Tufanye
njia inayofanana:
<?php
use \Core\Route;
return [
new Route('/page/:id/', 'page', 'show'),
];
?>
Tutekeleze mbinu iliyoelezwa show:
<?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'] ]; // ona ukurasa kwa nambari
}
}
?>
Tekeleza kidhibiti UserController,
kinachokuwa na safu ifuatayo:
<?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],
];
?>
Katika kidhibiti UserController, fanya
kitendo show, ambacho kitaonyesha
mtumiaji kulingana na id fulani. Hebu kitendo hiki
kiwe patikanaye kwa anwani ya aina ifuatayo:
/user/:id/.
Katika kidhibiti UserController, fanya
kitendo info, ambacho kitaonyesha
jina au umri wa mtumiaji aliyepewa. Hebu kitendo hiki
kiwe patikanaye kwa anwani ya aina ifuatayo:
/user/:id/:key/, ambapo key
itakuwa na thamani 'name', 'age'
au 'salary'.
Katika kidhibiti UserController, fanya
kitendo all, ambacho kitaonyesha
orodha ya watumiaji wote kwenye skrini. Hebu kitendo hiki
kiwe patikanaye kwa anwani ya aina ifuatayo:
/user/all/ (hakuna vigezo hapa).
Katika kidhibiti UserController, fanya
kitendo first, ambacho kitaonyesha
orodha ya watumiaji N wa kwanza kwenye skrini. Hebu kitendo hiki
kiwe patikanaye kwa anwani ya aina ifuatayo:
/user/first/:n/, ambapo kwenye kigezo
itakuwa idadi ya watumiaji, ambao inapaswa
kuonyeshwa kwenye skrini.