Google News
logo
Slim Framework - Interview Questions
What is Route Object in Slim Framework?
Sometimes in middleware you require the parameter of your route.
 
In this example we are checking first that the user is logged in and second that the user has permissions to view the particular video they are attempting to view.
$app
  ->get('/course/{id}', Video::class . ':watch')
  ->add(PermissionMiddleware::class);
<?php

use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
use Slim\Routing\RouteContext;

class PermissionMiddleware
{
    public function __invoke(Request $request, RequestHandler $handler)
    {
        $routeContext = RouteContext::fromRequest($request);
        $route = $routeContext->getRoute();
        
        $courseId = $route->getArgument('id');
        
        // do permission logic...
        
        return $handler->handle($request);
    }
}
Advertisement