Add value to route before in slim framework

Solution 1:

I assume you need to and PATH_INFO to the environment so you can later refer to it in the route callback. You can add a middleware to add attributes to the $request the route callback receives:

use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
use Slim\Psr7\Response;

class PathInfoMiddleware {
    public function __invoke(Request $request, RequestHandler $handler) : Response {
        $info = 'some value, path_trimmed for example...'; // this could be whatever you need it to be
        $request = $request->withAttribute('PATH_INFO', $info);
        return $handler->handle($request);
    }
}

// Add middleware to all routes
$app->add(PathInfoMiddleware::class);

// Use the attribute in a route
$app->get('/pathinfo', function(Request $request, Response $response){
    $response->getBody()->write($request->getAttribute('PATH_INFO'));
    return $response;
});

Now visiting /pathinfo gives the following output:

some value, path_trimmed for example...