@@ -55,7 +55,7 @@ public function load(array $configs, ContainerBuilder $container)
55
55
}
56
56
57
57
// Configure toolbar
58
- if ($ config ['profiling ' ][ ' enabled ' ] ) {
58
+ if ($ this -> isConfigEnabled ( $ container , $ config ['profiling ' ]) ) {
59
59
$ loader ->load ('data-collector.xml ' );
60
60
61
61
if (!empty ($ config ['profiling ' ]['formatter ' ])) {
@@ -73,7 +73,7 @@ public function load(array $configs, ContainerBuilder $container)
73
73
}
74
74
75
75
$ this ->configureClients ($ container , $ config );
76
- $ this ->configureSharedPlugins ($ container , $ config ['plugins ' ]); // must be after clients, as the extra_plugins in clients might use plugins as template that will be removed
76
+ $ this ->configureSharedPlugins ($ container , $ config ['plugins ' ]); // must be after clients, as clients.X.plugins might use plugins as templates that will be removed
77
77
$ this ->configureAutoDiscoveryClients ($ container , $ config );
78
78
}
79
79
@@ -93,7 +93,7 @@ private function configureClients(ContainerBuilder $container, array $config)
93
93
$ first = $ name ;
94
94
}
95
95
96
- $ this ->configureClient ($ container , $ name , $ arguments , $ config ['profiling ' ][ ' enabled ' ] );
96
+ $ this ->configureClient ($ container , $ name , $ arguments , $ this -> isConfigEnabled ( $ container , $ config ['profiling ' ]) );
97
97
}
98
98
99
99
// If we have clients configured
@@ -120,7 +120,7 @@ private function configureSharedPlugins(ContainerBuilder $container, array $conf
120
120
foreach ($ config as $ name => $ pluginConfig ) {
121
121
$ pluginId = 'httplug.plugin. ' .$ name ;
122
122
123
- if ($ pluginConfig[ ' enabled ' ] ) {
123
+ if ($ this -> isConfigEnabled ( $ container , $ pluginConfig) ) {
124
124
$ def = $ container ->getDefinition ($ pluginId );
125
125
$ this ->configurePluginByName ($ name , $ def , $ pluginConfig , $ container , $ pluginId );
126
126
} else {
@@ -230,54 +230,49 @@ private function configureAuthentication(ContainerBuilder $container, array $con
230
230
231
231
/**
232
232
* @param ContainerBuilder $container
233
- * @param string $name
233
+ * @param string $clientName
234
234
* @param array $arguments
235
235
* @param bool $profiling
236
236
*/
237
- private function configureClient (ContainerBuilder $ container , $ name , array $ arguments , $ profiling )
237
+ private function configureClient (ContainerBuilder $ container , $ clientName , array $ arguments , $ profiling )
238
238
{
239
- $ serviceId = 'httplug.client. ' .$ name ;
239
+ $ serviceId = 'httplug.client. ' .$ clientName ;
240
240
241
- $ pluginClientOptions = [];
241
+ $ plugins = [];
242
+ foreach ($ arguments ['plugins ' ] as $ plugin ) {
243
+ list ($ pluginName , $ pluginConfig ) = each ($ plugin );
244
+ if ('reference ' === $ pluginName ) {
245
+ $ plugins [] = $ pluginConfig ['id ' ];
246
+ } elseif ('authentication ' === $ pluginName ) {
247
+ // TODO handle custom authentication
248
+ } else {
249
+ $ pluginServiceId = $ serviceId .'.plugin. ' .$ pluginName ;
250
+ $ def = clone $ container ->getDefinition ('httplug.plugin ' .'. ' .$ pluginName );
251
+ $ def ->setAbstract (false );
252
+ $ this ->configurePluginByName ($ pluginName , $ def , $ pluginConfig , $ container , $ pluginServiceId );
253
+ $ container ->setDefinition ($ pluginServiceId , $ def );
254
+ $ plugins [] = $ pluginServiceId ;
255
+ }
256
+ }
242
257
258
+ $ pluginClientOptions = [];
243
259
if ($ profiling ) {
260
+ // Add the stopwatch plugin
244
261
if (!in_array ('httplug.plugin.stopwatch ' , $ arguments ['plugins ' ])) {
245
- // Add the stopwatch plugin
246
- array_unshift ($ arguments ['plugins ' ], [
247
- 'reference ' => [
248
- 'id ' => 'httplug.plugin.stopwatch ' ,
249
- ],
250
- ]);
262
+ array_unshift ($ plugins , 'httplug.plugin.stopwatch ' );
251
263
}
252
264
253
265
// Tell the plugin journal what plugins we used
254
266
$ container
255
267
->getDefinition ('httplug.collector.plugin_journal ' )
256
- ->addMethodCall ('setPlugins ' , [$ name , $ arguments [ ' plugins ' ] ])
268
+ ->addMethodCall ('setPlugins ' , [$ clientName , $ plugins ])
257
269
;
258
270
259
271
$ debugPluginServiceId = $ this ->registerDebugPlugin ($ container , $ serviceId );
260
272
261
273
$ pluginClientOptions ['debug_plugins ' ] = [new Reference ($ debugPluginServiceId )];
262
274
}
263
275
264
- $ plugins = [];
265
- foreach ($ arguments ['plugins ' ] as $ plugin ) {
266
- list ($ name , $ pluginConfig ) = each ($ plugin );
267
- if ('reference ' === $ name ) {
268
- $ plugins [] = $ pluginConfig ['id ' ];
269
- } elseif ('authentication ' === $ name ) {
270
- // TODO handle custom authentication
271
- } else {
272
- $ pluginServiceId = $ serviceId .'.plugin. ' .$ name ;
273
- $ def = clone $ container ->getDefinition ('httplug.plugin ' .'. ' .$ name );
274
- $ def ->setAbstract (false );
275
- $ this ->configurePluginByName ($ name , $ def , $ pluginConfig , $ container , $ pluginServiceId );
276
- $ container ->setDefinition ($ pluginServiceId , $ def );
277
- $ plugins [] = $ pluginServiceId ;
278
- }
279
- }
280
-
281
276
$ container
282
277
->register ($ serviceId , DummyClient::class)
283
278
->setFactory ([PluginClientFactory::class, 'createPluginClient ' ])
@@ -360,7 +355,7 @@ private function configureAutoDiscoveryClients(ContainerBuilder $container, arra
360
355
$ container ,
361
356
'auto_discovered_client ' ,
362
357
[HttpClientDiscovery::class, 'find ' ],
363
- $ config ['profiling ' ][ ' enabled ' ]
358
+ $ this -> isConfigEnabled ( $ container , $ config ['profiling ' ])
364
359
);
365
360
}
366
361
@@ -375,7 +370,7 @@ private function configureAutoDiscoveryClients(ContainerBuilder $container, arra
375
370
$ container ,
376
371
'auto_discovered_async ' ,
377
372
[HttpAsyncClientDiscovery::class, 'find ' ],
378
- $ config ['profiling ' ][ ' enabled ' ]
373
+ $ this -> isConfigEnabled ( $ container , $ config ['profiling ' ])
379
374
);
380
375
}
381
376
0 commit comments