From 821ebbf1f1ee401ff38fb01e19a49cead0f1c2aa Mon Sep 17 00:00:00 2001 From: Maxim Solovev Date: Mon, 17 Jun 2024 11:59:33 +0200 Subject: [PATCH 1/4] Throttle plugin small fixes --- src/DependencyInjection/Configuration.php | 8 ++++---- src/DependencyInjection/HttplugExtension.php | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php index bd70c712..da842c64 100644 --- a/src/DependencyInjection/Configuration.php +++ b/src/DependencyInjection/Configuration.php @@ -629,10 +629,10 @@ private function addSharedPluginNodes(ArrayNodeDefinition $pluginNode, $disableA ->canBeEnabled() ->addDefaultsIfNotSet() ->children() - ->scalarNode('name')->end() - ->scalarNode('key')->defaultNull()->end() - ->integerNode('tokens')->defaultValue(1)->end() - ->floatNode('max_time')->defaultNull()->end() + ->scalarNode('name')->isRequired()->info('Rate limiter configuration name from rate_limiter.yaml')->end() + ->scalarNode('key')->defaultNull()->info('A unique key for using one rate limiter name for different clients')->end() + ->integerNode('tokens')->defaultValue(1)->info('How many tokens spending per request')->end() + ->floatNode('max_time')->defaultNull()->info('Maximum accepted waiting time in seconds')->end() ->end() ->end(); // End throttle plugin diff --git a/src/DependencyInjection/HttplugExtension.php b/src/DependencyInjection/HttplugExtension.php index cdcbfcf0..2a288383 100644 --- a/src/DependencyInjection/HttplugExtension.php +++ b/src/DependencyInjection/HttplugExtension.php @@ -299,14 +299,14 @@ private function configurePluginByName($name, Definition $definition, array $con 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'] : ''; + $limiterServiceId = $serviceId.'.'.$config['name']; $container - ->register($serviceId.$key, LimiterInterface::class) + ->register($limiterServiceId, LimiterInterface::class) ->setFactory([new Reference('limiter.'.$config['name']), 'create']) ->addArgument($config['key']) ->setPublic(false); - $definition->replaceArgument(0, new Reference($serviceId.$key)); + $definition->replaceArgument(0, new Reference($limiterServiceId)); $definition->setArgument('$tokens', $config['tokens']); $definition->setArgument('$maxTime', $config['max_time']); From a777a17b7bebfd7688a67f34fa57cde5c9b83559 Mon Sep 17 00:00:00 2001 From: Maxim Date: Mon, 17 Jun 2024 13:57:25 +0200 Subject: [PATCH 2/4] Update src/DependencyInjection/Configuration.php Co-authored-by: David Buchmann --- src/DependencyInjection/Configuration.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php index da842c64..433b2607 100644 --- a/src/DependencyInjection/Configuration.php +++ b/src/DependencyInjection/Configuration.php @@ -630,7 +630,7 @@ private function addSharedPluginNodes(ArrayNodeDefinition $pluginNode, $disableA ->addDefaultsIfNotSet() ->children() ->scalarNode('name')->isRequired()->info('Rate limiter configuration name from rate_limiter.yaml')->end() - ->scalarNode('key')->defaultNull()->info('A unique key for using one rate limiter name for different clients')->end() + ->scalarNode('key')->defaultNull()->info('Key to avoid sharing this rate limiter with other clients or other services. You can use the name of the client for example.')->end() ->integerNode('tokens')->defaultValue(1)->info('How many tokens spending per request')->end() ->floatNode('max_time')->defaultNull()->info('Maximum accepted waiting time in seconds')->end() ->end() From 8a0353637267909d94dc6f9e1c062eb4eec6973d Mon Sep 17 00:00:00 2001 From: Maxim Date: Mon, 17 Jun 2024 13:58:33 +0200 Subject: [PATCH 3/4] Update src/DependencyInjection/Configuration.php Co-authored-by: David Buchmann --- src/DependencyInjection/Configuration.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php index 433b2607..51c031aa 100644 --- a/src/DependencyInjection/Configuration.php +++ b/src/DependencyInjection/Configuration.php @@ -629,7 +629,7 @@ private function addSharedPluginNodes(ArrayNodeDefinition $pluginNode, $disableA ->canBeEnabled() ->addDefaultsIfNotSet() ->children() - ->scalarNode('name')->isRequired()->info('Rate limiter configuration name from rate_limiter.yaml')->end() + ->scalarNode('name')->isRequired()->info('Rate limiter factory service name, e.g. limiter.http_client for a rate limiter called http_client')->end() ->scalarNode('key')->defaultNull()->info('Key to avoid sharing this rate limiter with other clients or other services. You can use the name of the client for example.')->end() ->integerNode('tokens')->defaultValue(1)->info('How many tokens spending per request')->end() ->floatNode('max_time')->defaultNull()->info('Maximum accepted waiting time in seconds')->end() From 1ac97926d86b49c108f47d9af846a828d5ab8b5f Mon Sep 17 00:00:00 2001 From: Maxim Solovev Date: Mon, 17 Jun 2024 14:12:48 +0200 Subject: [PATCH 4/4] change name --- src/DependencyInjection/HttplugExtension.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DependencyInjection/HttplugExtension.php b/src/DependencyInjection/HttplugExtension.php index 2a288383..f5d63ceb 100644 --- a/src/DependencyInjection/HttplugExtension.php +++ b/src/DependencyInjection/HttplugExtension.php @@ -302,7 +302,7 @@ private function configurePluginByName($name, Definition $definition, array $con $limiterServiceId = $serviceId.'.'.$config['name']; $container ->register($limiterServiceId, LimiterInterface::class) - ->setFactory([new Reference('limiter.'.$config['name']), 'create']) + ->setFactory([new Reference($config['name']), 'create']) ->addArgument($config['key']) ->setPublic(false);