rodri / simple-router
A simple router to API applications.
v1.3.3-alpha
2021-07-28 11:13 UTC
Requires
- php: ^8.0
Requires (Dev)
- phpunit/phpunit: 10.0.x-dev
This package is auto-updated.
Last update: 2025-02-05 09:21:10 UTC
README
Router for API applications - It’s a simple route builder that makes it’s process of defining the route far more simple and faster.
Installation
composer require rodri/simple-router:1.1.2-alpha
How it works?
Check the wiki: https://github.com/Rod1Andrade/simple-router/wiki
- When instantiate a new Router is necessary set the controller namespace.
- To pass params for a router just name the parameter with
:
. for example:/hello/:id
, in this case:id
is changed to request passed value. - To set a router is necessary start with bar
/
, but don't need to finish. - The first parameter of any verb method is an array
[]
, the first element of array need be the router name. The others have you own associative name, like['middleware' => 'MiddlewareClass']
. - Its possible have one or many middlewares to a unique router or a group of routes.
For one middleware use
['middleware' => 'NameMiddlewareClass']
, to many use['middleware' => ['OneMiddleware', 'AnotherMiddleware', 'OneMoreMiddleware']
.
Example
use Rodri\SimpleRouter\Helpers\Header; use Rodri\SimpleRouter\Router; # Application Routers $router = new Router(); $router->headerConfigs([ Header::APPLICATION_JSON_UTF8, ]); $router->setControllerNamespace('Rodri\SimpleRouter\Controllers'); $router->setMiddlewareNamespace('Rodri\SimpleRouter\Middlewares'); $router->debug(true); # Routers without group $router->get(['/hello'], 'HelloControllerExample#hello'); $router->get(['/hello/message/:id'], 'HelloControllerExample#helloByMessage'); $router->post(['/post'], 'HelloControllerExample#postTest'); $router->put(['/post'], 'HelloControllerExample#postTest'); $router->patch(['/post'], 'HelloControllerExample#postTest'); $router->delete(['/post'], 'HelloControllerExample#postTest'); # Router with group $router->group(['/group/test'], function (Router $router) { $router->get([''], 'HelloControllerExample#hello'); $router->get(['/:id'], 'HelloControllerExample#helloByMessage'); $router->post([''], 'HelloControllerExample#postTest'); }); $router->group(['/group'], function (Router $router) { $router->get([''], 'HelloControllerExample#hello'); $router->get(['/:id'], 'HelloControllerExample#helloByMessage'); $router->post([''], 'HelloControllerExample#postTest'); }); # Router with a group and middleware $router->group(['/request', 'middleware' => 'OtherMiddleware'], function (Router $router) { $router->get(['/get', 'middleware' => 'FailedMiddleware'], 'RequestController#get'); $router->post(['/post'], 'RequestController#post'); }); # Group Route with middlewares $router->group(['/request', 'middleware' => ['OtherMiddleware', 'GetMiddleware']], function (Router $router) { $router->get(['/get', 'middleware' => 'FailedMiddleware'], 'RequestController#get'); $router->post(['/post'], 'RequestController#post'); }); # ALone router with middlewares $router->get(['/aloneGet', 'middleware' => ['GetMiddleware', 'OtherMiddleware', 'FailedMiddleware']], 'RequestController#get'); # Execution of set router $router->dispatch();
License
MIT