Skip to content

Rod1Andrade/simple-router

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rodri\SimpleRouter

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