Skip to content

Commit aabdf9e

Browse files
committed
All plugins are configureable
1 parent 4392fb3 commit aabdf9e

File tree

3 files changed

+66
-0
lines changed

3 files changed

+66
-0
lines changed

DependencyInjection/Configuration.php

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,14 @@ protected function configurePlugins(ArrayNodeDefinition $root)
119119
->arrayNode('plugins')
120120
->addDefaultsIfNotSet()
121121
->children()
122+
123+
->arrayNode('authentication')
124+
->canBeEnabled()
125+
->children()
126+
->scalarNode('authentication')->isRequired()->cannotBeEmpty()->end()
127+
->end()
128+
->end() // End authentication plugin
129+
122130
->arrayNode('cache')
123131
->canBeEnabled()
124132
->addDefaultsIfNotSet()
@@ -141,6 +149,14 @@ protected function configurePlugins(ArrayNodeDefinition $root)
141149
->end()
142150
->end() // End cookie plugin
143151

152+
->arrayNode('decoder')
153+
->canBeDisabled()
154+
->addDefaultsIfNotSet()
155+
->children()
156+
->scalarNode('use_content_encoding')->defaultTrue()->end()
157+
->end()
158+
->end() // End decoder plugin
159+
144160
->arrayNode('history')
145161
->canBeEnabled()
146162
->children()
@@ -157,12 +173,30 @@ protected function configurePlugins(ArrayNodeDefinition $root)
157173
->end()
158174
->end() // End logger plugin
159175

176+
->arrayNode('redirect')
177+
->canBeDisabled()
178+
->addDefaultsIfNotSet()
179+
->children()
180+
->scalarNode('preserve_header')->defaultTrue()->end()
181+
->scalarNode('use_default_for_multiple')->defaultTrue()->end()
182+
->end()
183+
->end() // End redirect plugin
184+
185+
->arrayNode('retry')
186+
->canBeDisabled()
187+
->addDefaultsIfNotSet()
188+
->children()
189+
->scalarNode('retry')->defaultValue(1)->end()
190+
->end()
191+
->end() // End retry plugin
192+
160193
->arrayNode('stopwatch')
161194
->canBeEnabled()
162195
->children()
163196
->scalarNode('stopwatch')->isRequired()->cannotBeEmpty()->end()
164197
->end()
165198
->end() // End stopwatch plugin
199+
166200
->end()
167201
->end()
168202
->end();

DependencyInjection/HttplugExtension.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,13 @@ protected function configureClients(ContainerBuilder $container, array $config)
9494

9595
protected function configurePlugins(ContainerBuilder $container, array $config)
9696
{
97+
if ($config['authentication']['enabled']) {
98+
$container->getDefinition('httplug.plugin.authentication')
99+
->replaceArgument(0, new Reference($config['authentication']['authentication']));
100+
} else {
101+
$container->removeDefinition('httplug.plugin.authentication');
102+
}
103+
97104
if ($config['cache']['enabled']) {
98105
$container->getDefinition('httplug.plugin.cache')
99106
->replaceArgument(0, new Reference($config['cache']['cache_pool']))
@@ -110,6 +117,13 @@ protected function configurePlugins(ContainerBuilder $container, array $config)
110117
$container->removeDefinition('httplug.plugin.cookie');
111118
}
112119

120+
if ($config['decoder']['enabled']) {
121+
$container->getDefinition('httplug.plugin.decoder')
122+
->replaceArgument(0, $config['decoder']['use_content_encoding']);
123+
} else {
124+
$container->removeDefinition('httplug.plugin.decoder');
125+
}
126+
113127
if ($config['history']['enabled']) {
114128
$container->getDefinition('httplug.plugin.history')
115129
->replaceArgument(0, new Reference($config['history']['journal']));
@@ -125,6 +139,21 @@ protected function configurePlugins(ContainerBuilder $container, array $config)
125139
$container->removeDefinition('httplug.plugin.logger');
126140
}
127141

142+
if ($config['redirect']['enabled']) {
143+
$container->getDefinition('httplug.plugin.redirect')
144+
->replaceArgument(0, $config['redirect']['preserve_header'])
145+
->replaceArgument(1, $config['redirect']['use_default_for_multiple']);
146+
} else {
147+
$container->removeDefinition('httplug.plugin.redirect');
148+
}
149+
150+
if ($config['retry']['enabled']) {
151+
$container->getDefinition('httplug.plugin.retry')
152+
->replaceArgument(0, $config['retry']['retry']);
153+
} else {
154+
$container->removeDefinition('httplug.plugin.retry');
155+
}
156+
128157
if ($config['stopwatch']['enabled']) {
129158
$container->getDefinition('httplug.plugin.stopwatch')
130159
->replaceArgument(0, new Reference($config['stopwatch']['stopwatch']));

Resources/config/plugins.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
55

66
<services>
7+
<service id="httplug.plugin.authentication" class="Http\Client\Plugin\AuthenticationPlugin" public="false">
8+
<argument />
9+
</service>
710
<service id="httplug.plugin.cache" class="Http\Client\Plugin\CachePlugin" public="false">
811
<argument />
912
<argument />

0 commit comments

Comments
 (0)