From e9e64bf20d182e0564bf42c5b66c3fa37ffa10d8 Mon Sep 17 00:00:00 2001 From: Maxim Solovev Date: Fri, 14 Jun 2024 22:14:25 +0200 Subject: [PATCH] add additional checks --- src/DependencyInjection/HttplugExtension.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/DependencyInjection/HttplugExtension.php b/src/DependencyInjection/HttplugExtension.php index 6b793316..2e7165af 100644 --- a/src/DependencyInjection/HttplugExtension.php +++ b/src/DependencyInjection/HttplugExtension.php @@ -10,6 +10,7 @@ use Http\Client\Common\HttpMethodsClient; use Http\Client\Common\HttpMethodsClientInterface; use Http\Client\Common\Plugin\AuthenticationPlugin; +use Http\Client\Common\Plugin\ThrottlePlugin; use Http\Client\Common\PluginClient; use Http\Client\Common\PluginClientFactory; use Http\Client\HttpAsyncClient; @@ -294,6 +295,14 @@ private function configurePluginByName($name, Definition $definition, array $con break; case 'throttle': + if (!\interface_exists(LimiterInterface::class)) { + throw new InvalidConfigurationException('You need to require the Rate Limiter to be able to use it: "composer require symfony/rate-limiter".'); + } + + if (!\class_exists(ThrottlePlugin::class)) { + throw new InvalidConfigurationException('You need to require the Throttle Plugin to be able to use it: "composer require php-http/throttle-plugin".'); + } + $key = $config['name'] ? '.'.$config['name'] : ''; $container ->register($serviceId.$key, LimiterInterface::class)