Delo z routi v lastnem MVC ogrodju
Že veste, da so v datoteki /project/config/routes.php
nameščeni routi, ki označujejo ujemanja
med URL in krmilniki z akcijami. Routi
predstavljajo objekte razreda Route.
Naredimo ta razred v datoteki
/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;
}
}
?>
Kot vidite, so lastnosti v tem razredu namenjene samo za branje, kar dosežemo z uporabo magije.
Poglejte zdaj v datoteko z routi. Lahko
vidite, da se tam nahaja matrika, ki
se vrne preko return.
To pomeni,
da če takšno datoteko vključimo preko require,
lahko rezultat vključitve zapišemo v
spremenljivko in v tej spremenljivki bo naša
matrika:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// vaša implementacija avtomatskega nalaganja
});
// Preberemo matriko iz datoteke z routi v spremenljivko:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Kopirajte kodo mojega razreda Route
in ga namestite v datoteko
/core/Route.php.
Pridobite matriko z routi v datoteki index.php.