Skip to content

Commit 904108e

Browse files
author
Maxim Solovev
committed
fixes
1 parent b391113 commit 904108e

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

src/DependencyInjection/Configuration.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -630,8 +630,9 @@ private function addSharedPluginNodes(ArrayNodeDefinition $pluginNode, $disableA
630630
->addDefaultsIfNotSet()
631631
->children()
632632
->scalarNode('name')->end()
633-
->scalarNode('tokens')->defaultValue(1)->end()
634-
->scalarNode('max_time')->defaultNull()->end()
633+
->scalarNode('key')->defaultNull()->end()
634+
->integerNode('tokens')->defaultValue(1)->end()
635+
->floatNode('max_time')->defaultNull()->end()
635636
->end()
636637
->end();
637638
// End throttle plugin

src/DependencyInjection/HttplugExtension.php

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
3636
use Symfony\Component\DependencyInjection\Reference;
3737
use Symfony\Component\HttpKernel\Kernel;
38+
use Symfony\Component\RateLimiter\LimiterInterface;
3839
use Twig\Environment as TwigEnvironment;
3940

4041
/**
@@ -293,11 +294,16 @@ private function configurePluginByName($name, Definition $definition, array $con
293294
break;
294295

295296
case 'throttle':
296-
$definition->replaceArgument(0, new Reference('rate_limiter.'.$config['name']));
297-
$definition->addArgument([
298-
'tokens' => $config['tokens'],
299-
'maxTime' => $config['max_time'],
300-
]);
297+
$key = $config['name'] ? '.'.$config['name'] : '';
298+
$container
299+
->register($serviceId.$key, LimiterInterface::class)
300+
->setFactory([new Reference('limiter.'.$config['name']), 'create'])
301+
->addArgument($config['key'])
302+
->setPublic(false);
303+
304+
$definition->replaceArgument(0, new Reference($serviceId.$key));
305+
$definition->setArgument('$tokens', $config['tokens']);
306+
$definition->setArgument('$maxTime', $config['max_time']);
301307

302308
break;
303309

tests/Unit/DependencyInjection/ConfigurationTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ class ConfigurationTest extends AbstractExtensionConfigurationTestCase
100100
],
101101
'throttle' => [
102102
'enabled' => false,
103+
'key' => null,
103104
'tokens' => 1,
104105
'max_time' => null,
105106
],

0 commit comments

Comments
 (0)