Darbas su maršrutais savame MVC karkase
Jūs jau žinote, kad faile /project/config/routes.php
yra talpinami maršrutai, nurodantys atitikimus
tarp URL ir kontrolierių su veiksmais. Maršrutai
yra Route klasės objektai.
Sukurkime šią klasę faile
/core/Route.php:
<?php
namespace Core;
class Route
{
private $path;
private $controller;
private $action;
public function __construct($path, $controller, $action)
{
$this->path = $path;
$this->controller = $controller;
$this->action = $action;
}
public function __get($property)
{
return $this->$property;
}
}
?>
Kaip matote, šioje klasėje savybės yra skirtos tik skaitymui, tai pasiekiama naudojant magiją.
Dabar pažiūrėkite į failą su maršrutais. Galite
pamatyti, kad jame yra masyvas, kuris
grąžinamas per return. Tai reiškia,
kad jei prijungti tokį failą per require,
tai prijungimo rezultatą galima įrašyti į
kintamąjį ir šiame kintamajame bus mūsų
masyvas:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// jūsų autoloadinimo realizacija
});
// Nuskaitome masyvą iš failo su maršrutais į kintamąjį:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Nukopijuokite mano Route klasės kodą
ir patalpinkite jį faile
/core/Route.php.
Gaukite masyvą su maršrutais faile index.php.