Skip to content

Commit 5e780b8

Browse files
committed
fix(symfony): unload deprecated json problem services
1 parent 401b658 commit 5e780b8

File tree

6 files changed

+37
-19
lines changed

6 files changed

+37
-19
lines changed

src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,10 @@ private function registerJsonProblemConfiguration(array $errorFormats, XmlFileLo
588588
return;
589589
}
590590

591+
if ($config['defaults']['extra_properties']['rfc_7807_compliant_errors'] ?? false) {
592+
$loader->load('legacy/problem.xml');
593+
}
594+
591595
$loader->load('problem.xml');
592596
}
593597

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?xml version="1.0" ?>
2+
3+
<container xmlns="http://symfony.com/schema/dic/services"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
6+
7+
<services>
8+
<service id="api_platform.problem.normalizer.constraint_violation_list" class="ApiPlatform\Problem\Serializer\ConstraintViolationListNormalizer" public="false">
9+
<argument>%api_platform.validator.serialize_payload_fields%</argument>
10+
<argument type="service" id="api_platform.name_converter" on-invalid="ignore" />
11+
12+
<tag name="serializer.normalizer" priority="-780" />
13+
</service>
14+
15+
<!-- deprecated -->
16+
<service id="api_platform.problem.normalizer.error" class="ApiPlatform\Problem\Serializer\ErrorNormalizer" public="false">
17+
<argument>%kernel.debug%</argument>
18+
<argument type="collection"></argument>
19+
20+
<tag name="serializer.normalizer" priority="-810" />
21+
</service>
22+
</services>
23+
24+
</container>

src/Symfony/Bundle/Resources/config/problem.xml

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,12 @@
1212
<tag name="serializer.encoder" />
1313
</service>
1414

15-
<service id="api_platform.problem.normalizer.constraint_violation_list" class="ApiPlatform\Problem\Serializer\ConstraintViolationListNormalizer" public="false">
16-
<argument>%api_platform.validator.serialize_payload_fields%</argument>
17-
<argument type="service" id="api_platform.name_converter" on-invalid="ignore" />
18-
19-
<tag name="serializer.normalizer" priority="-780" />
20-
</service>
21-
2215
<service id="api_platform.problem.normalizer.validation_exception" class="ApiPlatform\Symfony\Validator\Serializer\ValidationExceptionNormalizer" public="false">
2316
<argument type="service" id="api_platform.serializer.normalizer.item" />
2417
<argument type="service" id="api_platform.name_converter" on-invalid="ignore" />
2518

2619
<tag name="serializer.normalizer" priority="-800" />
2720
</service>
28-
29-
<!-- deprecated -->
30-
<service id="api_platform.problem.normalizer.error" class="ApiPlatform\Problem\Serializer\ErrorNormalizer" public="false">
31-
<argument>%kernel.debug%</argument>
32-
<argument type="collection"></argument>
33-
34-
<tag name="serializer.normalizer" priority="-810" />
35-
</service>
3621
</services>
3722

3823
</container>

tests/Fixtures/app/AppKernel.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,10 @@ class_exists(NativePasswordHasher::class) ? 'password_hashers' : 'encoders' => [
245245
$legacyConfig = ['event_listeners_backward_compatibility_layer' => $metadataBackwardCompatibilityLayer];
246246
}
247247

248+
if (!$rfc7807CompliantErrors) {
249+
$loader->load(__DIR__."/config/config_legacy_error.yml");
250+
}
251+
248252
$c->prependExtensionConfig('api_platform', $legacyConfig + [
249253
'mapping' => [
250254
'paths' => ['%kernel.project_dir%/../TestBundle/Resources/config/api_resources'],

tests/Fixtures/app/config/config_common.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -433,10 +433,6 @@ services:
433433
arguments:
434434
$decorated: '@.inner'
435435

436-
ApiPlatform\Tests\Fixtures\TestBundle\Serializer\ErrorNormalizer:
437-
decorates: 'api_platform.problem.normalizer.error'
438-
arguments: [ '@.inner' ]
439-
440436
api_platform.http_cache.tag_collector:
441437
class: ApiPlatform\Tests\Fixtures\TestBundle\HttpCache\TagCollectorDefault
442438
public: true
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
services:
2+
ApiPlatform\Tests\Fixtures\TestBundle\Serializer\ErrorNormalizer:
3+
decorates: 'api_platform.problem.normalizer.error'
4+
arguments: [ '@.inner' ]
5+

0 commit comments

Comments
 (0)