arveres / route
v1.1.0
2022-12-18 22:37 UTC
Requires
- php: ^8.0
Requires (Dev)
- phpunit/php-code-coverage: ^9.2
- phpunit/phpunit: ^9.5
- symfony/var-dumper: ^6.2
This package is auto-updated.
Last update: 2024-04-19 01:28:20 UTC
README
Arveres routes, é um simples gerenciador de rotas, com features básicas de routeamento com PHP.
Instalação
Para instalar Arveres routes, você pode utilizar o comando composer diretamente em seu terminal:
$ composer require arveres/route
Ou você pode adicionar a seguinte linha em seu arquivo composer.json
.
{
"require": {
"arveres/route": "^1.1"
}
}
Em seguida, execute o comando:
$ composer install
Exemplo de uso:
require_once 'vendor/autoload.php'; use ArveresRoute\Http\Router; $router = new Router; //Instância de Router //Rota básica GET $router->get('/', [HomeController::class, 'index']); //Rota básica POST $router->post('/user/register', [UserController::class, 'store']); // Rotas com parâmetros dinâmicos $router->get('/user/{id}', [UserController::class, 'show']); // Rotas com middlewares // Middlewares passado como array no terceiro parâmetro. // O nome do middleware passado como parâmetro deve estar registrado com a classe Queue $router->get('/list', [HomeController::class, 'list'], ['stringTrim']); // Executa as rotas $router->run();
Exemplo controladores
class HomeController { // Todo controlador associado a rota possui como parâmetro // Uma instância de Request que pode ser omitido. public function index() { echo 'Página inicial :)'; } } class UserController { // Instância de Request como parâmetro ao método controlador public function store(Request $request) { UserModel::create($request->allPost()); //... } // Em rotas dinâmicas, o método do controlador associado // Recebe como parâmetro o nome da variável da rota dinâmica // OBS: Os parâmetros devem seguir a ordem das variáveis da rota // Por fim possuem uma instância de Request public function show($id, Request $request) { UserModel::findBy($id): /... } }
Middlewares Exemplo
use ArveresRoute\Http\Middlewares\Queue; // Referência para Queue // Registra middlewares Queue::routeMiddleware([ 'maintenance' => \ArveresRoute\Http\Middlewares\Maintenance::class, 'stringTrim' => \ArveresRoute\Http\Middlewares\trimString::class ]); // Define middleware padrão para todas as rotas Queue::middlewareDefault([ 'maintenance', ]);
Exemplo middleware
// A biblioteca possui um interface opcional que pode ser utilizado nas classes de middleware interface MiddlewareInterface // ArveresRoute\Http\Middlewares; { public function handle(Request $request, Closure $next); } // Exemplo de middleware class Maintenance implements MiddlewareInterface { public function handle(Request $request, Closure $next) { $ItIsInMaintenance = true; if (true === $ItIsInMaintenance) { throw new \Exception('A aplicação está em manutenção. Por favor, tente mais tarde', 200); } return $next($request); } }
Requisitos
- PHP 8.0 ou superior