Psr7Middlewares\Middleware\Https::__invoke PHP Метод

__invoke() публичный Метод

Execute the middleware.
public __invoke ( Psr\Http\Message\ServerRequestInterface $request, Psr\Http\Message\ResponseInterface $response, callable $next ) : Psr\Http\Message\ResponseInterface
$request Psr\Http\Message\ServerRequestInterface
$response Psr\Http\Message\ResponseInterface
$next callable
Результат Psr\Http\Message\ResponseInterface
    public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $next)
    {
        $uri = $request->getUri();
        if (strtolower($uri->getScheme()) !== 'https') {
            $uri = $uri->withScheme('https')->withPort(443);
            if ($this->redirectStatus !== false && (!$this->checkHttpsForward || $request->getHeaderLine('X-Forwarded-Proto') !== 'https' && $request->getHeaderLine('X-Forwarded-Port') !== '443')) {
                return $this->getRedirectResponse($request, $uri, $response);
            }
            $request = $request->withUri($uri);
        }
        if (!empty($this->maxAge)) {
            $response = $response->withHeader(self::HEADER, sprintf('max-age=%d%s', $this->maxAge, $this->includeSubdomains ? ';includeSubDomains' : ''));
        }
        $response = $next($request, $response);
        if (Utils\Helpers::isRedirect($response)) {
            return $response->withHeader('Location', str_replace('http://', 'https://', $response->getHeaderLine('Location')));
        }
        return $response;
    }