Skip to content

Commit 4408c9a

Browse files
authored
Merge pull request #113 from php-http/bugfix/plugin-config
fix plugin instantiation
2 parents d56a403 + 8801309 commit 4408c9a

File tree

3 files changed

+21
-8
lines changed

3 files changed

+21
-8
lines changed

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,14 @@
33

44
## UNRELEASED
55

6+
### Fixed
7+
8+
- decoder, redirect and retry plugins can now be used and no longer trigger an error because of incorrect constructor arguments.
9+
610
### Added
711

812
- Support for BatchClient
9-
- The stopwatch plugin in included by default when using profiling.
13+
- The stopwatch plugin in included by default when using profiling.
1014

1115
### Changed
1216

DependencyInjection/Configuration.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ public function getConfigTreeBuilder()
9292
return $v;
9393
})
9494
->end()
95+
->fixXmlConfig('client')
9596
->children()
9697
->arrayNode('main_alias')
9798
->addDefaultsIfNotSet()
@@ -150,7 +151,7 @@ public function getConfigTreeBuilder()
150151
return $treeBuilder;
151152
}
152153

153-
protected function configureClients(ArrayNodeDefinition $root)
154+
private function configureClients(ArrayNodeDefinition $root)
154155
{
155156
$root->children()
156157
->arrayNode('clients')
@@ -196,7 +197,7 @@ protected function configureClients(ArrayNodeDefinition $root)
196197
/**
197198
* @param ArrayNodeDefinition $root
198199
*/
199-
protected function configurePlugins(ArrayNodeDefinition $root)
200+
private function configurePlugins(ArrayNodeDefinition $root)
200201
{
201202
$root->children()
202203
->arrayNode('plugins')

DependencyInjection/HttplugExtension.php

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,9 @@ private function configurePluginByName($name, Definition $definition, array $con
145145
$definition->replaceArgument(0, new Reference($config['cookie_jar']));
146146
break;
147147
case 'decoder':
148-
$definition->addArgument($config['use_content_encoding']);
148+
$definition->addArgument([
149+
'use_content_encoding' => $config['use_content_encoding'],
150+
]);
149151
break;
150152
case 'history':
151153
$definition->replaceArgument(0, new Reference($config['journal']));
@@ -157,16 +159,22 @@ private function configurePluginByName($name, Definition $definition, array $con
157159
}
158160
break;
159161
case 'redirect':
160-
$definition
161-
->addArgument($config['preserve_header'])
162-
->addArgument($config['use_default_for_multiple']);
162+
$definition->addArgument([
163+
'preserve_header' => $config['preserve_header'],
164+
'use_default_for_multiple' => $config['use_default_for_multiple'],
165+
]);
163166
break;
164167
case 'retry':
165-
$definition->addArgument($config['retry']);
168+
$definition->addArgument([
169+
'retries' => $config['retry'],
170+
]);
166171
break;
167172
case 'stopwatch':
168173
$definition->replaceArgument(0, new Reference($config['stopwatch']));
169174
break;
175+
176+
default:
177+
throw new \InvalidArgumentException(sprintf('Internal exception: Plugin %s is not handled', $name));
170178
}
171179
}
172180

0 commit comments

Comments
 (0)