⊗ppMVDFmRr 25 of 35 menu

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.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar