Arbejde med ruter i dit eget MVC framework
Du ved allerede, at i filen /project/config/routes.php
placeres ruter, der angiver overensstemmelser
mellem URL og controllere med handlinger. Ruter
repræsenterer objekter af klassen Route.
Lad os oprette denne klasse i filen
/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;
}
}
?>
Som du kan se, er egenskaberne i denne klasse beregnet til læsning kun, hvilket opnås ved brug af magi.
Kig nu i filen med ruter. Du kan
se, at der er en matrix, som
returneres via return. Det betyder,
at hvis du inkluderer en sådan fil via require,
kan resultatet af inkluderingen skrives til en
variabel, og i denne variabel vil vores
matrix være:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// din implementering af autoload
});
// Læser matrixen fra filen med ruter ind i variabel:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Kopier koden for min klasse Route
og placer den i filen
/core/Route.php.
Hent matrixen med ruter i filen index.php.