@@ -320,6 +320,11 @@ processes by reserving unused tokens.
320320 $limit->wait();
321321 } while (!$limit->isAccepted());
322322
323+ ..versionadded ::6.4
324+
325+ The support for the ``reserve() `` method for the ``SlidingWindow `` strategy
326+ was introduced in Symfony 6.4.
327+
323328Exposing the Rate Limiter Status
324329~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
325330
@@ -348,7 +353,7 @@ the :class:`Symfony\\Component\\RateLimiter\\Reservation` object returned by the
348353 $limit = $limiter->consume();
349354 $headers = [
350355 'X-RateLimit-Remaining' => $limit->getRemainingTokens(),
351- 'X-RateLimit-Retry-After' => $limit->getRetryAfter()->getTimestamp( ),
356+ 'X-RateLimit-Retry-After' => $limit->calculateTimeForTokens(1, 1 ),
352357 'X-RateLimit-Limit' => $limit->getLimit(),
353358 ];
354359
@@ -365,6 +370,13 @@ the :class:`Symfony\\Component\\RateLimiter\\Reservation` object returned by the
365370 }
366371 }
367372
373+ ..versionadded ::6.4
374+
375+ The:method: `Symfony\\ Component\\ RateLimiter\\ Policy\\ SlidingWindow::calculateTimeForTokens `
376+ method was introduced in Symfony 6.4. Prior to this, the now deprecated
377+ :method: `Symfony\\ Component\\ RateLimiter\\ Policy\\ SlidingWindow::getRetryAfter `
378+ method must be used.
379+
368380.. _rate-limiter-storage :
369381
370382Storing Rate Limiter State