Arbeid med ruter i ditt eget MVC-rammeverk
Du vet allerede at i filen /project/config/routes.php
plasseres ruter som angir samsvar
mellom URL og kontrollere med handlinger. Ruter
representerer objekter av klassen Route.
La oss opprette denne klassen 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 egenskapene i denne klassen beregnet kun for lesing, noe som oppnås ved bruk av magi.
Ta en titt i filen med rutene nå. Du kan
se at det er en matrise der
som returneres via return.
Dette betyr at hvis en slik fil inkluderes
via require,
kan resultatet av inkluderingen skrives til en
variabel, og i denne variabelen vil vi få vår
matrise:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// din implementasjon av autolasting
});
// Leser matrisen fra filen med ruter inn i en variabel:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Kopier koden min for klassen Route
og plasser den i filen
/core/Route.php.
Få matrisen med ruter i filen index.php.