A PSR-15 middleware that enforces request timeout headers

final class RequestTimeoutMiddleware implements PsrHttpServerMiddlewareInterface
{
    public function process(PsrHttpMessageServerRequestInterface $request, PsrHttpServerRequestHandlerInterface $handler): PsrHttpMessageResponseInterface
    {
        if ($timeout = $request->getHeaderLine('X-Request-Timeout')) {
            set_time_limit(min((int) $timeout, 30));
        }
        return $handler->handle($request);
    }
}