Following this tutorial assumes that you already completed the installation and configuration steps.
Get an instance of the Dot\Router\RouteCollector
using the below code:
/** @var \Dot\Router\RouteCollectorInterface $routeCollector */
$routeCollector = $container->get(\Dot\Router\RouteCollectorInterface::class);
Create a route group, by setting the route group prefix and optionally a(n array of) common middleware(s):
$routeCollector->group('/resource', SomeMiddleware::class);
group
method arguments:
$routeCollector->group('/resource', [SomeMiddleware::class, OtherMiddleware::class])
->route('/manage', ResourceHandler::class, 'route-name', ['GET', 'POST']);
If this route does not need to be piped through specific middleware(s), you can specify the fifth argument $excludeMiddleware
exclude those middlewares at route level (makes sense when there are multiple routes in a group):
$routeCollector->group('/resource', [SomeMiddleware::class, OtherMiddleware::class])
->route('/manage', ResourceHandler::class, 'route-name', ['GET', 'POST'], excludeMiddleware: SomeMiddleware::class);
route()
method arguments:
any()
)$routeCollector->group('/resource', [SomeMiddleware::class, OtherMiddleware::class])
->any('/manage', ResourceHandler::class, 'route-name');
If this route does not need to be piped through specific middleware(s), you can specify the fourth argument $excludeMiddleware
exclude those middlewares at route level (makes sense when there are multiple routes in a group):
$routeCollector->group('/resource', [SomeMiddleware::class, OtherMiddleware::class])
->any('/manage', ResourceHandler::class, 'route-name', excludeMiddleware: SomeMiddleware::class);
any()
method arguments:
$routeCollector->group('/resource', [SomeMiddleware::class, OtherMiddleware::class])
->delete('/{id}', ResourceHandler::class, 'route-name');
If this route does not need to be piped through specific middleware(s), you can specify the fourth argument $excludeMiddleware
exclude those middlewares at route level (makes sense when there are multiple routes in a group):
$routeCollector->group('/resource', [SomeMiddleware::class, OtherMiddleware::class])
->delete('/{id}', ResourceHandler::class, 'route-name', excludeMiddleware: SomeMiddleware::class);
delete()
method arguments:
$routeCollector->group('/resource', [SomeMiddleware::class, OtherMiddleware::class])
->get('/{id}', ResourceHandler::class, 'route-name');
If this route does not need to be piped through specific middleware(s), you can specify the fourth argument $excludeMiddleware
exclude those middlewares at route level (makes sense when there are multiple routes in a group):
$routeCollector->group('/resource', [SomeMiddleware::class, OtherMiddleware::class])
->get('/{id}', ResourceHandler::class, 'route-name', excludeMiddleware: SomeMiddleware::class);
get()
method arguments:
$routeCollector->group('/resource', [SomeMiddleware::class, OtherMiddleware::class])
->patch('/{id}', ResourceHandler::class, 'route-name');
If this route does not need to be piped through specific middleware(s), you can specify the fourth argument $excludeMiddleware
exclude those middlewares at route level (makes sense when there are multiple routes in a group):
$routeCollector->group('/resource', [SomeMiddleware::class, OtherMiddleware::class])
->patch('/{id}', ResourceHandler::class, 'route-name', excludeMiddleware: SomeMiddleware::class);
patch()
method arguments:
$routeCollector->group('/resource', [SomeMiddleware::class, OtherMiddleware::class])
->post('', ResourceHandler::class, 'route-name');
If this route does not need to be piped through specific middleware(s), you can specify the fourth argument $excludeMiddleware
exclude those middlewares at route level (makes sense when there are multiple routes in a group):
$routeCollector->group('/resource', [SomeMiddleware::class, OtherMiddleware::class])
->post('', ResourceHandler::class, 'route-name', excludeMiddleware: SomeMiddleware::class);
post()
method arguments:
$routeCollector->group('/resource', [SomeMiddleware::class, OtherMiddleware::class])
->put('/{id}', ResourceHandler::class, 'route-name');
If this route does not need to be piped through specific middleware(s), you can specify the fourth argument $excludeMiddleware
exclude those middlewares at route level (makes sense when there are multiple routes in a group):
$routeCollector->group('/resource', [SomeMiddleware::class, OtherMiddleware::class])
->put('/{id}', ResourceHandler::class, 'route-name', excludeMiddleware: SomeMiddleware::class);
put()
method arguments: