Download the PHP package 89bsilva/my-route without Composer
On this page you can find all versions of the php package 89bsilva/my-route. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package my-route
MyRoute
MyRoute é uma ferramenta desenvolvida em PHP para realizar um controle muito simples de rotas
Instalação
Primeiro Passo
Importar o autoload do composer
Criando o obejto MyRoute
Ao instânciar a classe será criado o arquivo .htaccess com as configurações de reescrita de url para o arquivo index.php que deverá ser criado manualmente. Obs.: Caso o arquivo .htaccess já exista não será criado e para que o MyRoute funcione é necessário a reescrita de url para o arquivo de entrada com o valor da reescrita em $_GET['MyRouteURL']
Criando as Rotas
O MyRoute aceita e controla os tipos de requisições: GET, POST, PUT, DELETE e OPTIONS.
Para criar as rotas são disponibilizado os seguintes métodos:
Para criar é necessário informar no parâmetro "$url" o endereço da rota que deseja criar e no parâmetro "$pageFilePath" o endereço do arquivo que será incluido para lidar com a requisição Obs.: O MyRoute leva em consideração como endereço base para fazer o include o nível anterior da pasta vendor do composer. As rotas seguem a ordem em que foram criadas, o MyRoute devolve a primeira rota que os critérios foram atendidos.
Exemplo:
- Criar as rotas:
- /, controlada pelo arquivo: home.html, quando o tipo de requisição for: "GET"
- /contato, controlada pelo arquivo: contato.html, quando o tipo de requisição for: "GET"
- /contato/salvar, controlada pelo arquivo: salvar.php, quando o tipo de requisição for: "POST" ou "PUT"
É possível utilizar uma classe e um método para controlar uma rota, para isso será necessário colocar ":" logo após a extensão do arquivo e o nome da classe que será instanciada depois colocar "=" e o método que deverá ser chamado Obs.: Para funcionar o nome da classe e o do método dever ser informado igualmente está no arquivo.
Exemplo:
- Criar as rotas:
- /, controlada pela classe: "MeuSite", metodo: "home" no arquivo: site.php, quando o tipo de requisição for: "GET"
- /contato, controlada pela classe: "MeuSite", metodo: "contato" no arquivo: site.php, quando o tipo de requisição for: "GET"
- /contato/salvar, controlada pela classe: "MeuSite", metodo: "salvar" no arquivo: site.php, quando o tipo de requisição for: "POST"
É possível receber valores pela url, para isso será necessário colocar ":" no inicio da identificação da rota, assim o que seria o endereço será o nome da variável disponível na inclusão do arquivo. Obs.: Se for passado um nome de classe e método a variável será passada como argumento na chamada do método.
Exemplo:
- Criar as rotas:
- /api-class/user/id onde id será variável, controlada pela classe: "Api", metodo: "read" no arquivo: api-class.php, quando o tipo de requisição for: "GET"
- /api/user/id onde id será variável, controlada pelo arquivo: api.php, quando o tipo de requisição for: "GET"
Também é possível criar uma rota não exata, para isto para colocar "?" como rota que a partir daí a rota aceitará qualquer caminho. Obs.: Será disponibilizado uma variável (ou passado como argumento da chamada do método) $remaining com um array onde cada elemento será uma parte da rota após o sinal de ?.
Exemplo:
- Criar as rotas:
- /? controlada pela classe: "NotFound", metodo: "noExist" no arquivo: 404.php, para qualquer tipo de requisição
Protegendo Rotas
Para proteger rotas é necessário chamar o método "guard($route, $filePath)" da instância MyRoute. Antes dchamar o método "guard()" é necessário ter uma rota já criada. O parâmetro $route é a URL que se deseja guardar. O parâmetro $filePath é o endereço do arquivo que será incluido para realizar a proteção. Esse arquivo deve conter uma função/método que será chamado antes do MyRoute carregar o arquivo responsável por responder a rota. Essa função/método deve lidar com autorização e caso seja permitido entrar na rota deve ser retornado um valor TRUE, somente assim o MyRoute prosseguirá com as ações para entregar o arquivo responsável por responder a rota
Exemplo:
- Proteger a rota: /api/? utilizando o arquivo: "api.php" com uma função: "proteger"
Exemplo:
- Proteger a rota: /api/? utilizando o arquivo: "guardas.php" com uma classe: "GuardasDeRotas" e o método: "api"
Para facilitar a proteção de rotas é possível nomear as rotas, assim ao invés de passar a URL passa o nome da rota para o método guard. Para nomear uma rota deve colocar o nome que deseja entre [] no início da URL da rota. Obs.: As váriaveis de rota serão passadas na chamada da função/método
Exemplo:
- Criar a rota "/agenda/:data/gerar-pdf" nomear a rota para "gPDF", controlada pela classe: "MeuSite", metodo: "agenda" no arquivo: site.php, quando o tipo de requisição for: "GET"
- Proteger a rota: /agenda/:data/gerar-pdf utilizando o arquivo: "guardas.php" com uma classe: "GuardasDeRotas" e o método: "gerarPDF"
Último Passo
Logo após terminar de criar as rotas é necessário chamar o método "activate". Após isso o MyRote estará configurado e ativo!
Autor
Bruno Silva Santana - https://github.com/ibrunosilvas
Licença
MyDatabase está licenciado sob a licença MIT - consulte o arquivo LICENSE
para mais detalhes.