PHP-daky MVC-nyň marşruthlaryndaky parametrler
Öňki sapakda biziň marşruthlarymyz belli bir adreslere eýe boldy. Aslynda marşrutlaýyş mehanizmi has çylşyrymly - sahypanyň URI böleginiň atlandyrylan parametrlerine düşüp, soňra kontrollerde elýeterli bolýan etmek mümkin.
Meselem, biziň adreslerimiz şeýle görünýän bolsun: /test/param1/param2/,
ýerde param1 we param2 - erkin setirler. Şol bir wagtyň özünde biz şuňa meňzeş adresleriň bir kontroller hereketi tarapyndan işlenilmegini isleýäris. Bu üçin parametriň adyny oýlap tapmaly we onuň öňüne iki nokat goýmaly, şeýle:
<?php
use \Core\Route;
return [
new Route('/test/:var1/:var2/', 'page', 'act'),
];
?>
Biziň ýagdaýymyzda şuňa meňzeş boljak: /test/parametr1/parametr2/
ýaly ähli soraglar act hereketine düşer. Şol bir wagtyň özünde bu hereketiň birinji parametrine parametrleriň assosiativ massiwini düşer: birinji parametriň ýerine boljak tekst, 'var1' açar elementine, ikinji parametriň teksti bolsa 'var2' açar elementine düşer.
Meselem, salgy setirine şuňa meňzeş ýazylan bolsun: /test/eee/bbb/. Hereketiň birinji parametriniň näme boljakdygyna göz aýlanyş:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
public function act($params)
{
var_dump($params); // ['var1' => 'eee', 'var2' => 'bbb']
}
}
?>
NumController kontrollerini ýasaň, we onda - sum hereketini ýerine ýetiriň. Bu hereketiň şuňa meňzeş görnüşdäki adresleri işlemesine rugsat beriň:
/nums/:n1/:n2/:n3/, ýerde parametrler käbir sanlar bolup durýar. Geçirilen sanlaryň jeminiň ekrana çykarylýandygyna göz ýetiriň.