Lavorare con le rotte nel proprio framework MVC
Già sapete che nel file /project/config/routes.php
sono definite le rotte, che specificano le corrispondenze
tra URL e controller con le azioni. Le rotte
sono oggetti della classe Route.
Creiamo questa classe nel file
/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;
}
}
?>
Come potete vedere, in questa classe le proprietà sono destinate solo alla lettura, ottenuto utilizzando la magia.
Diamo ora un'occhiata al file con le rotte. Potete
vedere che lì si trova un array che
viene restituito tramite return. Questo significa
che se si include tale file tramite require,
il risultato dell'inclusione può essere memorizzato in una
variabile e in questa variabile si troverà il nostro
array:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// la tua implementazione dell'autocaricamento
});
// Leggiamo l'array dal file delle rotte nella variabile:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Copiate il codice della mia classe Route
e posizionatelo nel file
/core/Route.php.
Ottenete l'array con le rotte nel file index.php.