Práca s routami vo vlastnom MVC frameworku
Už viete, že v súbore /project/config/routes.php
sú umiestnené routy, ktoré určujú zhodu
medzi URL a kontrolermi s akciami. Routy
sú objekty triedy Route.
Poďme vytvoriť túto triedu v súbore
/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;
}
}
?>
Ako vidíte, v tejto triede sú vlastnosti určené len na čítanie, čo sa dosahuje použitím magických metód.
Pozrite sa teraz do súboru s routami. Môžete
vidieť, že tam je pole, ktoré
sa vracia pomocou return.
To znamená, že ak pripojíte takýto súbor pomocou require,
výsledok pripojenia je možné zapísať do
premennej a v tejto premennej bude naše
pole:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// vaša implementácia autoloadingu
});
// Prečítame pole zo súboru s routami do premennej:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Skopírujte kód mojej triedy Route
a umiestnite ho do súboru
/core/Route.php.
Získajte pole s routami v súbore index.php.