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);
}
}