src/Http/RequestHandler.php
protected function get(ServerRequestInterface $request, bool $next = false): ?MiddlewareInterface
    {
        $index = $next ? ++$this->index : $this->index;

        if (!isset($this->middleware[$index])) {
            return null;
        }

        $middleware = $this->middleware[$index];

        if (\is_array($middleware)) {
            $conditions = $middleware;
            $middleware = \array_pop($conditions);

            if (!Matcher\Factory::matches($conditions, $request)) {
                return $this->get($request, true);
            }
        }

        if (\is_callable($middleware)) {
            return new Middleware\CallableWrapper($middleware);
        }

        if (\is_string($middleware)) {
            if ($this->container === null) {
                throw new \RuntimeException("No valid middleware provided: $middleware");
            }

            $middleware = $this->container->get($middleware);
        }

        if (!$middleware instanceof MiddlewareInterface) {
            throw new \RuntimeException('The middleware must be an instance of MiddlewareInterface');
        }

        return $middleware;
    }
protected function get(ServerRequestInterface $request, bool $next = false): ?MiddlewareInterface
    {
        $index = $next ? ++$this->index : $this->index;

        if (!isset($this->middleware[$index])) {
            return null;
        }

        $middleware = $this->middleware[$index];

        if (\is_array($middleware)) {
            $conditions = $middleware;
            $middleware = \array_pop($conditions);

            if (!Matcher\Factory::matches($conditions, $request)) {
                return $this->get($request, true);
            }
        }

        if (\is_callable($middleware)) {
            return new Middleware\CallableWrapper($middleware);
        }

        if (\is_string($middleware)) {
            if ($this->container === null) {
                throw new \RuntimeException("No valid middleware provided: $middleware");
            }

            $middleware = $this->container->get($middleware);
        }

        if (!$middleware instanceof MiddlewareInterface) {
            throw new \RuntimeException('The middleware must be an instance of MiddlewareInterface');
        }

        return $middleware;
    }
protected function get ( ServerRequestInterface $ request , bool $ next = false ) : ? MiddlewareInterface { $ index = $ next ? ++ $ this -> index : $ this -> index ; if ( ! isset ( $ this -> middleware [ $ index ] ) ) { return null ; } $ middleware = $ this -> middleware [ $ index ] ; if ( \ is_array ( $ middleware ) ) { $ conditions = $ middleware ; $ middleware = \ array_pop ( $ conditions ) ; if ( ! Matcher \ Factory :: matches ( $ conditions , $ request ) ) { return $ this -> get ( $ request , true ) ; } } if ( \ is_callable ( $ middleware ) ) { return new Middleware \ CallableWrapper ( $ middleware ) ; } if ( \ is_string ( $ middleware ) ) { if ( $ this -> container === null ) { throw new \ RuntimeException ( "No valid middleware provided: $middleware" ) ; } $ middleware = $ this -> container -> get ( $ middleware ) ; } if ( ! $ middleware instanceof MiddlewareInterface ) { throw new \ RuntimeException ( 'The middleware must be an instance of MiddlewareInterface' ) ; } return $ middleware ; }
Return the current or next available middleware frame in the middleware.

@param ServerRequestInterface $request
@param bool                   $next

@return null|MiddlewareInterface
@throws
Return the current or next available middleware frame in the middleware .