Līdzšinējais maršrutētājs spēja tikt galā ar vienkāršu datņu pieprasīšanu, taču nu tam jāspēj atrast vajadzīgā klase un izsaukt pareizā metode tajā!
Līdzšinējais maršrutētājs spēja tikt galā ar vienkāršu datņu pieprasīšanu, taču nu tam jāspēj atrast vajadzīgā klase un izsaukt pareizā metode tajā!
Turpmāk datnē routes.php glabāsim nevis
maršrutu - datņu nosaukumu pārus, bet gan
maršrutu - KontrolieruKlašu@metožu pārus.
routes.php nomaini esošo maršrutu uz:
return [
'/' => 'BlogController@index'
];
router.php datnē zem $routes mainīgā
vērtības piešķiršanas (aptuveni 6. rinda) pievieno koda fragmentu,
kurš pieprasa ikkatru kontroliera klasi, lai tās visas kļūst
pieejamas maršrutētājā:
foreach ($routes as $controller) {
require_once "controllers/" . explode("@", $controller)[0] . ".php";
}
explode("@", "BlogController@index") pieņem, ka
vērtības simbolu virknē tiek atdalītas ar noteiku simbolu
(šoreiz @) un pārveido simbolu virkni par masīvu. Masīva 0. elements ir
BlogController, bet otrais - index
require $routes[$uri];) aizstāj ar kodu,
kurš atdala kontroliera klases nosaukumu no
metodes, izveido šai klasei jaunu objektu jeb instanci un izsauc
norādīto metodi:
[$controller, $method] = explode('@', $routes[$uri]);
$instance = new $controller();
$instance->$method();
Pamani, cik stilīgi var masīva elementus katru ielikt savā mainīgajā -
[$controller, $method] = ["BlogController", "index"]
http://localhost/, atkal tiek attēlots teksts
Visi bloga ieraksti