1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Symfony \Component \DependencyInjection \Loader \Configurator ;
6+
7+ use Phpro \ApiProblemBundle \EventListener \JsonApiProblemExceptionListener ;
8+ use Phpro \ApiProblemBundle \Transformer \ApiProblemExceptionTransformer ;
9+ use Phpro \ApiProblemBundle \Transformer \Chain ;
10+ use Phpro \ApiProblemBundle \Transformer \HttpExceptionTransformer ;
11+ use Phpro \ApiProblemBundle \Transformer \SecurityExceptionTransformer ;
12+
13+ return static function (ContainerConfigurator $ container ): void {
14+ $ services = $ container ->services ();
15+
16+ $ services ->set (JsonApiProblemExceptionListener::class)
17+ ->class (JsonApiProblemExceptionListener::class)
18+ ->args ([
19+ '$exceptionTransformer ' => service (Chain::class),
20+ '$debug ' => param ('kernel.debug ' ),
21+ ])
22+ ->tag ('kernel.event_listener ' , [
23+ 'event ' => 'kernel.exception ' ,
24+ 'method ' => 'onKernelException ' ,
25+ 'priority ' => -5 ,
26+ ]);
27+
28+ $ services ->set (Chain::class)
29+ ->class (Chain::class)
30+ ->args ([
31+ tagged_iterator ('phpro.api_problem.exception_transformer ' ),
32+ ]);
33+
34+ $ services ->set (ApiProblemExceptionTransformer::class)
35+ ->class (ApiProblemExceptionTransformer::class)
36+ ->tag ('phpro.api_problem.exception_transformer ' );
37+
38+ $ services ->set (HttpExceptionTransformer::class)
39+ ->class (HttpExceptionTransformer::class)
40+ ->tag ('phpro.api_problem.exception_transformer ' );
41+
42+ $ services ->set (SecurityExceptionTransformer::class)
43+ ->class (SecurityExceptionTransformer::class)
44+ ->tag ('phpro.api_problem.exception_transformer ' );
45+ };
0 commit comments