1. Go to this page and download the library: Download israel-nogueira/fast-router library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
israel-nogueira / fast-router example snippets
sraelNogueira\fastRouter\router;
namespace IsraelNogueira\Models;
use IsraelNogueira\fastRouter\router;
//-------------------------------------------------------------------------------
// No modo estático a requisição é direto no método
//-------------------------------------------------------------------------------
router::get('admin/path1/path2', function () {});
router::post('admin/path1/path2', function () {});
router::put('admin/path1/path2', function () {});
router::delete('admin/path1/path2', function () {});
//-------------------------------------------------------------------------------
// O método "any" aceita qualquer tipo de requisição
//-------------------------------------------------------------------------------
router::any('admin/path1/path2', function () {});
//-------------------------------------------------------------------------------
// Ele aceita o seguinte grupo de requests:
//-------------------------------------------------------------------------------
// 'ANY','MATH','GET', 'REDIRECT','POST','RMDIR','MKDIR',
// 'INDEX','MOVE','TRACE','DELETE','TRACK','PUT','HEAD','OPTIONS','CONNECT'
//
//
// math aceitará os métodos listados na array
//-------------------------------------------------------------------------------
router::math(['POST','GET'],'admin/path1/path2', function () {});
namespace IsraelNogueira\Models;
use IsraelNogueira\fastRouter\router;
/*
Rotas:
/admin
/admin/usuarios
/admin/fotos
/admin/produtos/detalhes
/admin/produtos/fotos
*/
router::group('admin',function(){
router::get('usuarios', function () {});
router::get('fotos', function () {});
router::group('produtos',function(){
router::get('detalhes', function () {});
router::get('fotos', function () {});
})
})
namespace IsraelNogueira\Models;
use IsraelNogueira\fastRouter\router;
function middl_1($return=[], $next=null){
// faz o que tiver que fazer
// ... ... ...
// caso você queira parar o processo e retornar um erro
if($qualquer_erro){
throw new Exception("Error Processing Request", 1);
}
// executa a próxima
$next($return, $next);
}
function middl_2($return=[], $next=null){
// faz o que tiver que fazer
// ... ... ...
// caso você queira apenas armazenar o erro
if($qualquer_erro){
$return[] = ['status'=>false,'middleware'=>[__CLASS__.' > '.__FUNCTION__]];
}
// executa a próxima
$next($return, $next);
}
function middl_3($return=[], $next=null){
// faz o que tiver que fazer
// ... ... ...
// Ou ainda executar uma função paralela
if($qualquer_erro){
$return[] = ['status'=>false,'middleware'=>[__CLASS__.' > '.__FUNCTION__]];
$this->corrige_algo();
}
// executa a próxima
$next($return, $next);
}
router::group([
'prefix'=>'/admin',
'middleware'=>['middl_1','middl_2','middl_3']],
function($return){
print_r($return);
exit;
}
);
namespace IsraelNogueira\Models;
use IsraelNogueira\fastRouter\router;
//-------------------------------------------------------
// Variáveis ID e NOME podem ser passadas como parâmetros
//-------------------------------------------------------
router::get('admin/{ID}/{NOME}', function ($ID,$NOME) {});
//--------------------------------------------------------------------------------------
// No regex, a expressão {idade[0-9]+} é uma expressão regular que define
// um padrão de correspondência de texto que procura por uma string que
// começa com a sequência de caracteres idade, seguida por um ou mais dígitos de 0 a 9.
// eo O \d representa qualquer dígito numérico e o sinal de + significa
// que o padrão anterior deve aparecer uma ou mais vezes na string correspondente.
//--------------------------------------------------------------------------------------
router::get('admin/{idade:[0-9]+}/{id:\d+}', function ($iddade,$id) {});
/*
|-----------------------------------------------------------------------------------
| NÃO OBRIGATORIEDADE DO PARAMETRO
|-----------------------------------------------------------------------------------
|
| Caso não queira um parametro obrigatório basta colocar ele nesse formato: [/{param}/] exemplo:
|
|-----------------------------------------------------------------------------------
|*/
router::get('admin/{id:\d+}[/{{title}}/]', function ($id,$title) {});
/*
|-----------------------------------------------------------------------------------
| Para parametros não obrigatórios enclosurados
|-----------------------------------------------------------------------------------
|
| Isso quer dizer que apenas o admin, id e nome são obrigatórios.
| Quanto ao enclousuramento ficará com o formato [/{param}/] com barra no inicio e no fim;
| Enclosurando fica: [/{{nome}}[/{{sobrenome}}/]/]
| Para facilitar a visualização será algo mais ou menos assim:
| [/ param1
| [/ param1
| [/ param1
| [/ param1 /]
| /]
| /]
| /]
-------------------------------------------------------------------------------------
*/
router::post('admin/{id:\d+}[/{{title}}[/{{length}}[/{{last}}/]/]/]', function ($id,$title,$length,$last) {});
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.