Main Goal
Now is possible define a middleware to a simple router or a group router.
Changes
- Status Code
- Carry values between requests (Middleware and Controllers)
Bugs Solves
- Handle for group router: Before we have a error who impossibility the have two grouped routers.
- Namespaces definitions
- Header reset
- Empty return response
- Error handler in debug Mode accept also Exceptions
How the middleware works
- Just implement the middleware interface and set the namespace to use.
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);
$router->get(['/aloneGet', 'middleware' => ['GetMiddleware', 'OtherMiddleware', 'FailedMiddleware']], 'RequestController#get');
$router->group(['/request', 'middleware' => 'OtherMiddleware'], function (Router $router) {
$router->get(['/get', 'middleware' => 'FailedMiddleware'], 'RequestController#get');
$router->post(['/post'], 'RequestController#post');
});
# Dispatch router
$router->dispatch();