Práce s routami ve vlastním MVC frameworku
Už víte, že v souboru /project/config/routes.php
jsou umístěny routy, které určují odpovídání
mezi URL a kontrolery s akcemi. Routy
jsou objekty třídy Route.
Pojďme vytvořit tuto třídu v souboru
/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;
}
}
?>
Jak vidíte, vlastnosti této třídy jsou určeny pouze pro čtení, čehož je dosaženo použitím magie.
Nyní nahlédněte do souboru s routami. Můžete
vidět, že tam je pole, které
se vrací pomocí return.
To znamená, že pokud takový soubor připojíte pomocí require,
výsledek připojení lze zapsat do
proměnné a v této proměnné bude naše
pole:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// vaše implementace autoloadingu
});
// Načteme pole ze souboru s routami do proměnné:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Zkopírujte kód mé třídy Route
a umístěte jej do souboru
/core/Route.php.
Získejte pole s routami v souboru index.php.