Arbete med routes i ditt eget MVC-ramverk
Du vet redan att i filen /project/config/routes.php
placeras routes som anger överensstämmelse
mellan URL och kontrollerare med åtgärder. Routes
är objekt av klassen Route.
Låt oss skapa den här 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 är egenskaperna i denna klass avsedda endast för läsning, vilket uppnås genom användning av magi.
Titta nu i filen med routes. Du kan
se att det finns en array där
som returneras via return. Det betyder
att om en sådan fil inkluderas via require,
så kan resultatet av inkluderingen skrivas till en
variabel och i denna variabel kommer vår
array att finnas:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// din implementation av autoload
});
// Läser arrayen från filen med routes in i en variabel:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Kopiera koden för min klass Route
och placera den i filen
/core/Route.php.
Skaffa arrayen med routes i filen index.php.