Psr7Middlewares\Middleware\FormatNegotiator::__invoke PHP Method

__invoke() public method

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
return Psr\Http\Message\ResponseInterface
    public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $next)
    {
        $format = $this->getFromExtension($request) ?: $this->getFromHeader($request) ?: $this->default;
        $contentType = $this->formats[$format][1][0] . '; charset=utf-8';
        $response = $next(self::setAttribute($request, self::KEY, $format), $response->withHeader('Content-Type', $contentType));
        if (!$response->hasHeader('Content-Type')) {
            $response = $response->withHeader('Content-Type', $contentType);
        }
        return $response;
    }