Përdorimi i parametrave në rrugët në MVC në PHP
Le të shohim zbatimin e të përshkruarit në
një shembull më jetësor. Le të supozojmë se kontrolluesi ynë
PageController përmban një grup faqesh
(këto të dhëna duhet t'i kthejë modeli, por me
modelet ende nuk jemi marrë, kështu që le të
dhënat të ruhen për momentin thjesht në kontrollues):
<?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',
];
}
}
?>
Le të krijojmë një veprim show, i cili
do të shfaqë në ekran një faqe me një numër
të caktuar (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()
{
// këtu do të shfaqim faqen me numrin e caktuar
}
}
?>
Le të themi se kur i drejtohemi adresës /page/1/
të shfaqet teksti i faqes së parë, kur
i drejtohemi adresës /page/2/ -
teksti i faqes së dytë e kështu me radhë. Le të krijojmë
rrugën përkatëse:
<?php
use \Core\Route;
return [
new Route('/page/:id/', 'page', 'show'),
];
?>
Le të implementojmë metodën e përshkruar 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'] ]; // shfaqim faqen sipas numrit
}
}
?>
Implementoni kontrolluesin UserController,
që përmban grupin e mëposhtëm:
<?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],
];
?>
Në kontrolluesin UserController, bëni
veprimin show, i cili do të shfaqë
përdoruesin sipas një id të caktuar. Le të jetë
i arritshëm në adresën e formës së mëposhtme:
/user/:id/.
Në kontrolluesin UserController, bëni
veprimin info, i cili do të shfaqë
emrin ose moshën e përdoruesit të caktuar. Le të jetë ky
veprim i arritshëm në adresën e formës së mëposhtme:
/user/:id/:key/, ku key
do të ketë vlerën 'name', 'age'
ose 'salary'.
Në kontrolluesin UserController, bëni
veprimin all, i cili do të shfaqë
listën e të gjithë përdoruesve në ekran. Le të jetë ky veprim
i arritshëm në adresën e formës së mëposhtme:
/user/all/ (këtu nuk do të ketë
asnjë parametër).
Në kontrolluesin UserController, bëni
veprimin first, i cili do të shfaqë
listën e N përdoruesve të parë në ekran. Le të jetë ky
veprim i arritshëm në adresën e formës së mëposhtme:
/user/first/:n/, ku në parametër
do të jetë numri i përdoruesve që duhet
të shfaqen në ekran.