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