Trabalhando com rotas no seu próprio framework MVC
Você já sabe que no arquivo /project/config/routes.php
são definidas as rotas, que especificam as correspondências
entre a URL e os controladores com as ações. As rotas
são objetos da classe Route.
Vamos criar essa classe no arquivo
/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;
}
}
?>
Como você pode ver, nesta classe as propriedades são somente para leitura, o que é alcançado usando métodos mágicos.
Dê uma olhada agora no arquivo de rotas. Você pode
ver que há um array que
é retornado via return. Isso significa
que se incluirmos esse arquivo via require,
o resultado da inclusão pode ser armazenado em uma
variável e essa variável conterá nosso
array:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// sua implementação de autoload
});
// Lemos o array do arquivo de rotas na variável:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Copie o código da minha classe Route
e coloque-o no arquivo
/core/Route.php.
Obtenha o array com as rotas no arquivo index.php.