Esempio n. 1
0
 /**
  * @param \Psr\Http\Message\ServerRequestInterface $request The request.
  * @param \Psr\Http\Message\ResponseInterface $response The response.
  * @param callable $next The next middleware to call.
  * @return \Psr\Http\Message\ResponseInterface A response.
  */
 public function __invoke(ServerRequestInterface $request, ResponseInterface $response, $next)
 {
     try {
         Router::setRequestContext($request);
         $params = (array) $request->getAttribute('params', []);
         if (empty($params['controller'])) {
             $path = $request->getUri()->getPath();
             $request = $request->withAttribute('params', Router::parse($path, $request->getMethod()));
         }
     } catch (RedirectException $e) {
         return new RedirectResponse($e->getMessage(), $e->getCode(), $response->getHeaders());
     }
     return $next($request, $response);
 }