Parametrat në Rrugët në MVC në PHP
Në mësimin e mëparshëm, rrugët tona kishin adresa fikse. Në realitet mekanizmi i rrugëzimit është më i ndërlikuar - mund të bëhet që një pjesë e URI-së së faqes të bjerë në parametra të emërtuar, të cilat më pas janë të disponueshme në kontrollues.
Le të themi, për shembull, që adresat tona të duken
kështu: /test/param1/param2/,
ku param1 dhe param2 janë stringje
arbitrare. Në të njëjtën kohë, ne duam që adresa të këtij
lloji të trajtohen nga një veprim i kontrolluesit.
Për këtë, duhet të gjejmë një emër për parametrin
dhe para tij të vendosim dy pika, si këtu:
<?php
use \Core\Route;
return [
new Route('/test/:var1/:var2/', 'page', 'act'),
];
?>
Në rastin tonë, do të rezultojë që të gjitha kërkesat
e formës /test/parametri1/parametri2/
do të përfundojnë në veprimin act. Në
këtë rast, në parametrin e parë të këtij veprimi do
të përfundojë një array asociativ me parametra:
teksti që do të jetë në vend të parametrit të parë,
përfundon në elementin e array-it me çelës 'var1',
ndërsa teksti i parametrit të dytë - në 'var2'.
Le të themi, për shembull, që në shiritin e adresës është shtypur
sa vijon: /test/eee/bbb/. Le të
shohim se çfarë do të përmbajë parametri i parë
i veprimit:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
public function act($params)
{
var_dump($params); // ['var1' => 'eee', 'var2' => 'bbb']
}
}
?>
Krijoni një kontrollues NumController,
dhe në të - veprimin sum. Le të themi se ky
veprim trajton adresat e formës së mëposhtme:
/nums/:n1/:n2/:n3/, ku parametrat
do të jenë disa numra. Bëni që
në ekran të printohet shuma e numrave të transmetuar.