Download the PHP package albreis/router without Composer
On this page you can find all versions of the php package albreis/router. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package router
Como usar
Antes de tudo precisamos importar nosso loader do composer:
Agora podemos instânciar o Router.
Fazendo uma requisição
O Router aceita qualquer método de requisição e possui 3 argumentos:
metodo GET, POST, DELETE, CLI, etc
path é o caminho em que o callback deve ser executado. Usa REGEX para definir as rotas.
callback é um callable, seja uma função ou método e aceita os formatos:
- função anônima
function() { ... } - métodos
[$instancia, metodo]Ex. [$this, run] - métodos estáticos
'Classe::metodo'(caso não seja estático será criada uma instância da classe automaticamente) - Arrow functions
fn() => return true
bypass indica se o script vai continuar sendo executado após o match com a rota.
return indica se será retornado o valor caso o callback retorne algum valor
Exemplos
Exemplo 1:
Exemplo 2:
O Router chamará a função exit() após executar o callback, evitando assim a execução do restante do script.
Caso queira que o script continue sendo executado mesmo após dar match com a rota basta passar o parâmetro bypass como true.
Exemplo 3:
Ao acessar a rota http://seusite.com.br/minha-categoria/postagem-109 as variáveis $category e $post teriam os valores minha-categoria e postagem-109 respectivamente.
Como criar um middleware
Para usar o Router como um middleware para setar a rota como bypass.
No exemplo abaixo temos um middleware que é executado em todas as requisições do método POST para a rota login.
Um exemplo de uso seria para criar um sistema de logs de requisição ou pré tratamento de dados.
Exemplo 4:
Before e After
Existem 2 métodos que também podem ser utilizados com middlwares.
A diferença entre usar esses métodos ou utilizar uma rota com bypass é que com before e after você não precisa escrever o pattern da rota.
Before e After podem ser usados também em rotas com bypass.
Usando via CLI
Você pode usar o Router via terminal para chamar as rotas usando o padrão abaixo:
Exemplo:
Exemplos avançados
Exemplo 5 (funções anônimas):
Exemplo 6 (arrow functions):
Exemplo 6 (métodos):
Prefix
Agora é possível agrupar rotas usando prefixos:
Exemplo:
Agora os métodos podem usar injeção de parâmetro, exemplo:
Agora também é possivel acessar uma instância do Router a partir do método:
Usando Registry
Router Registry é uma forma de carregar automaticamente rotas usando DocBlock @Route.
Exemplo:
Como carregar automaticamente arquivos:
Isso vai fazer com o todas as classes do namespace App/ do diretorio sejam mapeadas.
Como carregar uma classe única:
Isso vai fazer com os metodos da classe sejam mapeados.
Usando funções:
Você pode utilizar funções para trabalhar com rotas:
Ao acessar /hello o Router vai executar essa função. Lembre-se que a função precisa existir.
Caso a função esteja em um arquivo externo que ainda não tenha sido feito include/require vocêpode usar o método loadUserFunctionsFrom(), ele vai fazer include do arquivo antes de buscar rotas.
Adicionar uma função unica
Salvar rotas em arquivo para produção
Em produção o ideal é que a aplicação não fique escaneando os arquivos por rotas a cada requisição.
Para isso você pode gerar um arquivo de rotas usando o método $registry->save([caminho do arquivo]).
O caminho padrão do arquivo é routes.php no direotrio atual.