Desenvolvimento de um roteador para seu próprio framework MVC
Agora você precisa desenvolver um roteador. Ele representa uma classe que irá pegar o array de rotas, pegar a URL solicitada, e determinar qual das rotas corresponde a essa URL. Após encontrar a rota correspondente, nossa classe deve obter as partes da URL que correspondem aos parâmetros da rota.
Como resultado, deixe nosso roteador retornar
um objeto da classe Track, contendo o nome
do controlador que deve ser chamado para
essa solicitação, o nome da ação e os parâmetros da URL.
Deixe nossa classe Track ter as propriedades
controller, action e params,
acessíveis apenas para leitura:
<?php
namespace Core;
class Track
{
private $controller;
private $action;
private $params;
public function __construct($controller, $action, $params)
{
$this->controller = $controller;
$this->action = $action;
$this->params = $params;
}
public function __get($property)
{
return $this->$property;
}
}
?>
Exemplo
Por exemplo, suponha que na barra de endereços foi digitado
/test/1/2/. Suponha que temos uma rota
que corresponde a esse endereço:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Isso significa que o nome do controlador será test,
o nome da ação - index, e o array de parâmetros
será o seguinte:
<?php
['var1' => 1, 'var2' => 2]
?>
O objetivo desta lição é escrever a classe Router,
retornando um objeto da classe Track.
O resto não nos preocupa por enquanto. Vamos começar
a escrever essa classe.
Tarefas práticas
Copie o código da minha classe Track
e coloque-o no arquivo
/core/Track.php.