Slim Framework 4 get all routes in middleware

551 Views Asked by At

I used the example https://stackoverflow.com/a/59681352/1650293 but it works perfectly in Actions, but I need it to happen in middleware. When I do the exact same thing in middleware, it returns error 500. What is missing? I couldn't understand why it didn't work.

This is my middware

namespace App\Application\Middleware;

use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
use Slim\Psr7\Response;
use Slim\Routing\RouteContext;
use Slim\Interfaces\RouteCollectorInterface;

final class ACLMiddleware {
private $routeCollector;
    
    public function __construct(RouteCollectorInterface $routeCollector)
    {
        $this->routeCollector = $routeCollector;
    }

public function __invoke(Request $request, RequestHandler $handler): Response
    {
$routes = $this->routeCollector->getRoutes();
print_r($routes);
}
}

This is my container

    use Slim\Interfaces\RouteCollectorInterface;
    
    return [
    ...
    RouteCollectorInterface::class => function (ContainerInterface $container) {
            return $container->get(App::class)->getRouteCollector();
        },

...
];
0

There are 0 best solutions below