@@ -60,7 +60,7 @@ protected function describeContainerTags(ContainerBuilder $builder, array $optio
60
60
foreach ($ this ->findDefinitionsByTag ($ builder , $ showHidden ) as $ tag => $ definitions ) {
61
61
$ data [$ tag ] = [];
62
62
foreach ($ definitions as $ definition ) {
63
- $ data [$ tag ][] = $ this ->getContainerDefinitionData ($ definition , true );
63
+ $ data [$ tag ][] = $ this ->getContainerDefinitionData ($ definition , true , false , $ builder , $ options [ ' id ' ] ?? null );
64
64
}
65
65
}
66
66
@@ -76,7 +76,7 @@ protected function describeContainerService(object $service, array $options = []
76
76
if ($ service instanceof Alias) {
77
77
$ this ->describeContainerAlias ($ service , $ options , $ builder );
78
78
} elseif ($ service instanceof Definition) {
79
- $ this ->writeData ($ this ->getContainerDefinitionData ($ service , isset ($ options ['omit_tags ' ]) && $ options ['omit_tags ' ], isset ($ options ['show_arguments ' ]) && $ options ['show_arguments ' ]), $ options );
79
+ $ this ->writeData ($ this ->getContainerDefinitionData ($ service , isset ($ options ['omit_tags ' ]) && $ options ['omit_tags ' ], isset ($ options ['show_arguments ' ]) && $ options ['show_arguments ' ], $ builder , $ options [ ' id ' ] ), $ options );
80
80
} else {
81
81
$ this ->writeData (\get_class ($ service ), $ options );
82
82
}
@@ -106,7 +106,7 @@ protected function describeContainerServices(ContainerBuilder $builder, array $o
106
106
if ($ service instanceof Alias) {
107
107
$ data ['aliases ' ][$ serviceId ] = $ this ->getContainerAliasData ($ service );
108
108
} elseif ($ service instanceof Definition) {
109
- $ data ['definitions ' ][$ serviceId ] = $ this ->getContainerDefinitionData ($ service , $ omitTags , $ showArguments );
109
+ $ data ['definitions ' ][$ serviceId ] = $ this ->getContainerDefinitionData ($ service , $ omitTags , $ showArguments, $ builder , $ serviceId );
110
110
} else {
111
111
$ data ['services ' ][$ serviceId ] = \get_class ($ service );
112
112
}
@@ -115,9 +115,9 @@ protected function describeContainerServices(ContainerBuilder $builder, array $o
115
115
$ this ->writeData ($ data , $ options );
116
116
}
117
117
118
- protected function describeContainerDefinition (Definition $ definition , array $ options = [])
118
+ protected function describeContainerDefinition (Definition $ definition , array $ options = [], ContainerBuilder $ builder = null )
119
119
{
120
- $ this ->writeData ($ this ->getContainerDefinitionData ($ definition , isset ($ options ['omit_tags ' ]) && $ options ['omit_tags ' ], isset ($ options ['show_arguments ' ]) && $ options ['show_arguments ' ]), $ options );
120
+ $ this ->writeData ($ this ->getContainerDefinitionData ($ definition , isset ($ options ['omit_tags ' ]) && $ options ['omit_tags ' ], isset ($ options ['show_arguments ' ]) && $ options ['show_arguments ' ], $ builder , $ options [ ' id ' ] ?? null ), $ options );
121
121
}
122
122
123
123
protected function describeContainerAlias (Alias $ alias , array $ options = [], ContainerBuilder $ builder = null )
@@ -129,7 +129,7 @@ protected function describeContainerAlias(Alias $alias, array $options = [], Con
129
129
}
130
130
131
131
$ this ->writeData (
132
- [$ this ->getContainerAliasData ($ alias ), $ this ->getContainerDefinitionData ($ builder ->getDefinition ((string ) $ alias ), isset ($ options ['omit_tags ' ]) && $ options ['omit_tags ' ], isset ($ options ['show_arguments ' ]) && $ options ['show_arguments ' ])],
132
+ [$ this ->getContainerAliasData ($ alias ), $ this ->getContainerDefinitionData ($ builder ->getDefinition ((string ) $ alias ), isset ($ options ['omit_tags ' ]) && $ options ['omit_tags ' ], isset ($ options ['show_arguments ' ]) && $ options ['show_arguments ' ], $ builder , ( string ) $ alias )],
133
133
array_merge ($ options , ['id ' => (string ) $ alias ])
134
134
);
135
135
}
@@ -217,7 +217,7 @@ protected function getRouteData(Route $route): array
217
217
return $ data ;
218
218
}
219
219
220
- private function getContainerDefinitionData (Definition $ definition , bool $ omitTags = false , bool $ showArguments = false ): array
220
+ private function getContainerDefinitionData (Definition $ definition , bool $ omitTags = false , bool $ showArguments = false , ContainerBuilder $ builder = null , string $ id = null ): array
221
221
{
222
222
$ data = [
223
223
'class ' => (string ) $ definition ->getClass (),
@@ -235,7 +235,7 @@ private function getContainerDefinitionData(Definition $definition, bool $omitTa
235
235
}
236
236
237
237
if ($ showArguments ) {
238
- $ data ['arguments ' ] = $ this ->describeValue ($ definition ->getArguments (), $ omitTags , $ showArguments );
238
+ $ data ['arguments ' ] = $ this ->describeValue ($ definition ->getArguments (), $ omitTags , $ showArguments, $ builder , $ id );
239
239
}
240
240
241
241
$ data ['file ' ] = $ definition ->getFile ();
@@ -272,6 +272,8 @@ private function getContainerDefinitionData(Definition $definition, bool $omitTa
272
272
}
273
273
}
274
274
275
+ $ data ['usages ' ] = null !== $ builder && null !== $ id ? $ this ->getServiceEdges ($ builder , $ id ) : [];
276
+
275
277
return $ data ;
276
278
}
277
279
@@ -381,12 +383,12 @@ private function getCallableData(mixed $callable): array
381
383
throw new \InvalidArgumentException ('Callable is not describable. ' );
382
384
}
383
385
384
- private function describeValue (mixed $ value , bool $ omitTags , bool $ showArguments ): mixed
386
+ private function describeValue ($ value , bool $ omitTags , bool $ showArguments, ContainerBuilder $ builder = null , string $ id = null ): mixed
385
387
{
386
388
if (\is_array ($ value )) {
387
389
$ data = [];
388
390
foreach ($ value as $ k => $ v ) {
389
- $ data [$ k ] = $ this ->describeValue ($ v , $ omitTags , $ showArguments );
391
+ $ data [$ k ] = $ this ->describeValue ($ v , $ omitTags , $ showArguments, $ builder , $ id );
390
392
}
391
393
392
394
return $ data ;
@@ -408,11 +410,11 @@ private function describeValue(mixed $value, bool $omitTags, bool $showArguments
408
410
}
409
411
410
412
if ($ value instanceof ArgumentInterface) {
411
- return $ this ->describeValue ($ value ->getValues (), $ omitTags , $ showArguments );
413
+ return $ this ->describeValue ($ value ->getValues (), $ omitTags , $ showArguments, $ builder , $ id );
412
414
}
413
415
414
416
if ($ value instanceof Definition) {
415
- return $ this ->getContainerDefinitionData ($ value , $ omitTags , $ showArguments );
417
+ return $ this ->getContainerDefinitionData ($ value , $ omitTags , $ showArguments, $ builder , $ id );
416
418
}
417
419
418
420
return $ value ;
0 commit comments