for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Lamoda\Tactician\RateLimit\RateLimiter;
final class FirstMatchedRateLimitProvider implements RateLimitProviderInterface
{
/**
* @var RateLimitProviderInterface[]
*/
private $rateLimitProviders;
public function __construct(RateLimitProviderInterface ...$rateLimitProviders)
$this->rateLimitProviders = $rateLimitProviders;
}
public function provide($command): ?RateLimit
$result = null;
foreach ($this->rateLimitProviders as $rateLimitProvider) {
$result = $rateLimitProvider->provide($command);
if ($result !== null) {
break;
return $result;