Paraméterek alkalmazása útvonalakban MVC-ben PHP-ben
Nézzük meg az elmondottakat egy
életszerűbb példán. Tegyük fel, hogy a mi
PageController kontrollerünk tartalmaz egy oldaltömböt
(ezeket az adatokat egy modellnek kellene visszaadnia, de a
modellekkel még nem foglalkoztunk, ezért egyelőre legyenek
az adatok egyszerűen a kontrollerben tárolva):
<?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',
];
}
}
?>
Készítsük el a show műveletet, amely
kiírja a képernyőre egy adott sorszámú (id) oldalt:
<?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()
{
// itt jelenítjük meg az adott sorszámú oldalt
}
}
?>
Tegyük fel, hogy a /page/1/ cím
meghívásakor az első oldal szövege jelenik meg, a
/page/2/ cím meghívásakor -
a második oldal szövege és így tovább. Készítsük el
a megfelelő útvonalat:
<?php
use \Core\Route;
return [
new Route('/page/:id/', 'page', 'show'),
];
?>
Valósítsuk meg a leírt show metódust:
<?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'] ]; // kiírjuk az oldalt a sorszám alapján
}
}
?>
Valósítsa meg a UserController kontrollert,
amely tartalmazza a következő tömböt:
<?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],
];
?>
A UserController kontrollerben készítsen
egy show műveletet, amely kiírja
a felhasználót egy adott id alapján. Legyen
ez a művelet elérhető a következő alakú címen:
/user/:id/.
A UserController kontrollerben készítsen
egy info műveletet, amely kiírja
a megadott felhasználó nevét vagy korát. Legyen ez
a művelet elérhető a következő alakú címen:
/user/:id/:key/, ahol a key
értéke 'name', 'age'
vagy 'salary' lehet.
A UserController kontrollerben készítsen
egy all műveletet, amely kiírja
az összes felhasználó listáját a képernyőre. Legyen ez a művelet
elérhető a következő alakú címen:
/user/all/ (itt nem lesznek semmilyen
paraméterek).
A UserController kontrollerben készítsen
egy first műveletet, amely kiírja
az első N felhasználó listáját a képernyőre. Legyen ez
a művelet elérhető a következő alakú címen:
/user/first/:n/, ahol a paraméter
a kiírandó felhasználók számát határozza meg.