Skip to content

Commit 553655e

Browse files
authored
Merge pull request #31 from phpro/sf80-config
Drop XML config
2 parents f129546 + ed93e2b commit 553655e

File tree

5 files changed

+55
-36
lines changed

5 files changed

+55
-36
lines changed

composer.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
"symfony/http-kernel": "^6.4 || ^7.4 || ^8.0"
1818
},
1919
"require-dev": {
20-
"matthiasnoback/symfony-dependency-injection-test": "^4.3",
21-
"php-cs-fixer/shim": "^3.88",
22-
"phpro/grumphp-shim": "^2.17",
23-
"phpspec/prophecy": "^1.17",
24-
"phpspec/prophecy-phpunit": "^2.0",
25-
"phpunit/phpunit": "^12.4",
20+
"matthiasnoback/symfony-dependency-injection-test": "^6.2",
21+
"php-cs-fixer/shim": "^3.94",
22+
"phpro/grumphp-shim": "^2.19",
23+
"phpspec/prophecy": "^1.25",
24+
"phpspec/prophecy-phpunit": "^2.5",
25+
"phpunit/phpunit": "^12.5",
2626
"symfony/security-core": "^6.4 || ^7.4 || ^8.0"
2727
},
2828
"config": {

config/services.php

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
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+
};

config/services.xml

Lines changed: 0 additions & 27 deletions
This file was deleted.

src/DependencyInjection/ApiProblemExtension.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class ApiProblemExtension extends Extension
1313
{
1414
public function load(array $configs, ContainerBuilder $container): void
1515
{
16-
$loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../../config'));
17-
$loader->load('services.xml');
16+
$loader = new Loader\PhpFileLoader($container, new FileLocator(__DIR__.'/../../config'));
17+
$loader->load('services.php');
1818
}
1919
}

test/DependencyInjection/ApiProblemExtensionTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use PHPUnit\Framework\Attributes\CoversClass;
1212
use PHPUnit\Framework\Attributes\Test;
1313
use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument;
14+
use Symfony\Component\DependencyInjection\Reference;
1415

1516
#[CoversClass(ApiProblemExtension::class)]
1617
class ApiProblemExtensionTest extends AbstractExtensionTestCase
@@ -34,7 +35,7 @@ public function it_registers_json_exception_listener(): void
3435
$this->assertContainerBuilderHasServiceDefinitionWithArgument(
3536
JsonApiProblemExceptionListener::class,
3637
'$exceptionTransformer',
37-
Transformer\Chain::class
38+
new Reference(Transformer\Chain::class),
3839
);
3940
$this->assertContainerBuilderHasServiceDefinitionWithArgument(
4041
JsonApiProblemExceptionListener::class,

0 commit comments

Comments
 (0)