Skip to content

Commit 6c9157b

Browse files
[ErrorHandler] merge and remove the ErrorRenderer component
1 parent 10a349c commit 6c9157b

File tree

99 files changed

+536
-1640
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+536
-1640
lines changed

UPGRADE-4.4.md

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ Console
1818
Debug
1919
-----
2020

21-
* Deprecated the `Debug` class, use the one from the `ErrorRenderer` component instead
2221
* Deprecated the `FlattenException` class, use the one from the `ErrorRenderer` component instead
2322
* Deprecated the component in favor of the `ErrorHandler` component
2423

@@ -309,45 +308,35 @@ TwigBundle
309308
* Deprecated all built-in error templates, use the error renderer mechanism of the `ErrorRenderer` component
310309
* Deprecated loading custom error templates in non-html formats. Custom HTML error pages based on Twig keep working as before:
311310

312-
Before (`templates/bundles/TwigBundle/Exception/error.jsonld.twig`):
311+
Before (`templates/bundles/TwigBundle/Exception/error.json.twig`):
313312
```twig
314313
{
315-
"@id": "https://example.com",
316-
"@type": "error",
317-
"@context": {
318-
"title": "{{ status_text }}",
319-
"code": {{ status_code }},
320-
"message": "{{ exception.message }}"
321-
}
314+
"type": "https://example.com/error",
315+
"title": "{{ status_text }}",
316+
"status": {{ status_code }}
322317
}
323318
```
324319

325-
After (`App\ErrorRenderer\JsonLdErrorRenderer`):
320+
After (`App\Serializer\ProblemJsonNormalizer`):
326321
```php
327-
class JsonLdErrorRenderer implements ErrorRendererInterface
322+
class ProblemJsonNormalizer implements NormalizerInterface
328323
{
329-
public static function getFormat(): string
324+
public function normalize($exception, $format = null, array $context = [])
330325
{
331-
return 'jsonld';
326+
return [
327+
'type' => 'https://example.com/error',
328+
'title' => $exception->getStatusText(),
329+
'status' => $exception->getStatusCode(),
330+
];
332331
}
333332
334-
public function render(FlattenException $exception): string
333+
public function supportsNormalization($data, $format = null)
335334
{
336-
return json_encode([
337-
'@id' => 'https://example.com',
338-
'@type' => 'error',
339-
'@context' => [
340-
'title' => $exception->getTitle(),
341-
'code' => $exception->getStatusCode(),
342-
'message' => $exception->getMessage(),
343-
],
344-
]);
335+
return 'json' === $format && $data instanceof FlattenException;
345336
}
346337
}
347338
```
348339

349-
Configure your rendering service tagging it with `error_renderer.renderer`.
350-
351340
Validator
352341
---------
353342

UPGRADE-5.0.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ Console
5757
Debug
5858
-----
5959

60-
* Removed the `Debug` class, use the one from the `ErrorRenderer` component instead
6160
* Removed the `FlattenException` class, use the one from the `ErrorRenderer` component instead
6261
* Removed the component in favor of the `ErrorHandler` component
6362

composer.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
"symfony/dom-crawler": "self.version",
4949
"symfony/dotenv": "self.version",
5050
"symfony/error-handler": "self.version",
51-
"symfony/error-renderer": "self.version",
5251
"symfony/event-dispatcher": "self.version",
5352
"symfony/expression-language": "self.version",
5453
"symfony/filesystem": "self.version",

src/Symfony/Bridge/Twig/Mime/NotificationEmail.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
namespace Symfony\Bridge\Twig\Mime;
1313

14-
use Symfony\Component\ErrorRenderer\Exception\FlattenException;
14+
use Symfony\Component\ErrorHandler\Exception\FlattenException;
1515
use Symfony\Component\Mime\Header\Headers;
1616
use Symfony\Component\Mime\Part\AbstractPart;
1717
use Twig\Extra\CssInliner\CssInlinerExtension;

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/UnusedTagsPass.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ class UnusedTagsPass implements CompilerPassInterface
3232
'controller.service_arguments',
3333
'config_cache.resource_checker',
3434
'data_collector',
35-
'error_renderer.renderer',
3635
'form.type',
3736
'form.type_extension',
3837
'form.type_guesser',

src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
use Symfony\Component\DependencyInjection\Compiler\RegisterReverseContainerPass;
3434
use Symfony\Component\DependencyInjection\ContainerBuilder;
3535
use Symfony\Component\ErrorHandler\ErrorHandler;
36-
use Symfony\Component\ErrorRenderer\DependencyInjection\ErrorRendererPass;
3736
use Symfony\Component\EventDispatcher\DependencyInjection\RegisterListenersPass;
3837
use Symfony\Component\Form\DependencyInjection\FormPass;
3938
use Symfony\Component\HttpClient\DependencyInjection\HttpClientPass;
@@ -92,7 +91,6 @@ public function build(ContainerBuilder $container)
9291
KernelEvents::FINISH_REQUEST,
9392
];
9493

95-
$container->addCompilerPass(new ErrorRendererPass());
9694
$container->addCompilerPass(new LoggerPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION, -32);
9795
$container->addCompilerPass(new RegisterControllerArgumentLocatorsPass());
9896
$container->addCompilerPass(new RemoveEmptyControllerArgumentLocatorsPass(), PassConfig::TYPE_BEFORE_REMOVING);

src/Symfony/Bundle/FrameworkBundle/Resources/config/console.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -194,12 +194,6 @@
194194
<tag name="console.command" command="debug:form" />
195195
</service>
196196

197-
<service id="console.command.error_renderer_debug" class="Symfony\Component\ErrorRenderer\Command\DebugCommand">
198-
<argument type="collection" /> <!-- All error renderers are injected here by ErrorRendererPass -->
199-
<argument type="service" id="debug.file_link_formatter" on-invalid="null" />
200-
<tag name="console.command" command="debug:error-renderer" />
201-
</service>
202-
203197
<service id="console.command.secrets_set" class="Symfony\Bundle\FrameworkBundle\Command\SecretsSetCommand">
204198
<argument type="service" id="secrets.vault" />
205199
<argument type="service" id="secrets.local_vault" on-invalid="ignore" />

src/Symfony/Bundle/FrameworkBundle/Resources/config/error_renderer.xml

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,7 @@
55
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
66

77
<services>
8-
<service id="error_renderer" class="Symfony\Component\ErrorRenderer\DependencyInjection\LazyLoadingErrorRenderer">
9-
<argument /> <!-- error renderer locator -->
10-
</service>
11-
12-
<service id="error_renderer.renderer.html" class="Symfony\Component\ErrorRenderer\ErrorRenderer\HtmlErrorRenderer">
13-
<tag name="error_renderer.renderer" />
8+
<service id="error_handler.error_renderer.html" class="Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer">
149
<argument>%kernel.debug%</argument>
1510
<argument>%kernel.charset%</argument>
1611
<argument type="service" id="debug.file_link_formatter" on-invalid="null" />
@@ -19,21 +14,15 @@
1914
<argument type="service" id="logger" on-invalid="null" />
2015
</service>
2116

22-
<service id="error_renderer.renderer.json" class="Symfony\Component\ErrorRenderer\ErrorRenderer\JsonErrorRenderer">
23-
<tag name="error_renderer.renderer" />
24-
<argument>%kernel.debug%</argument>
25-
</service>
26-
27-
<service id="error_renderer.renderer.xml" class="Symfony\Component\ErrorRenderer\ErrorRenderer\XmlErrorRenderer">
28-
<tag name="error_renderer.renderer" format="atom" />
29-
<tag name="error_renderer.renderer" />
17+
<service id="error_handler.error_renderer.serializer" class="Symfony\Component\ErrorHandler\ErrorRenderer\SerializerErrorRenderer">
18+
<argument type="service" id="serializer" />
19+
<argument type="service" id="request_stack" />
20+
<argument type="service" id="error_renderer.html" />
3021
<argument>%kernel.debug%</argument>
31-
<argument>%kernel.charset%</argument>
3222
</service>
3323

34-
<service id="error_renderer.renderer.txt" class="Symfony\Component\ErrorRenderer\ErrorRenderer\TxtErrorRenderer">
35-
<tag name="error_renderer.renderer" />
36-
<argument>%kernel.debug%</argument>
37-
</service>
24+
<service id="error_renderer.html" alias="error_handler.error_renderer.html" />
25+
<service id="error_renderer.serializer" alias="error_handler.error_renderer.serializer" />
26+
<service id="error_renderer" alias="error_renderer.html" />
3827
</services>
3928
</container>

src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
<services>
1313
<defaults public="false" />
1414

15+
<service id="error_renderer" alias="error_renderer.serializer" />
16+
1517
<service id="serializer" class="Symfony\Component\Serializer\Serializer" public="true">
1618
<argument type="collection" />
1719
<argument type="collection" />
@@ -59,6 +61,12 @@
5961
<tag name="serializer.normalizer" priority="-900" />
6062
</service>
6163

64+
<service id="serializer.normalizer.problem" class="Symfony\Component\Serializer\Normalizer\ProblemNormalizer">
65+
<argument>%kernel.debug%</argument>
66+
<!-- Run before serializer.normalizer.object -->
67+
<tag name="serializer.normalizer" priority="-890" />
68+
</service>
69+
6270
<service id="serializer.normalizer.object" class="Symfony\Component\Serializer\Normalizer\ObjectNormalizer">
6371
<argument type="service" id="serializer.mapping.class_metadata_factory" />
6472
<argument type="service" id="serializer.name_converter.metadata_aware" />

src/Symfony/Bundle/FrameworkBundle/composer.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
"symfony/cache": "^4.4|^5.0",
2222
"symfony/config": "^4.3.4|^5.0",
2323
"symfony/dependency-injection": "^4.4|^5.0",
24-
"symfony/error-renderer": "^4.4|^5.0",
2524
"symfony/http-foundation": "^4.4|^5.0",
2625
"symfony/http-kernel": "^4.4",
2726
"symfony/polyfill-mbstring": "~1.0",
@@ -50,7 +49,7 @@
5049
"symfony/process": "^3.4|^4.0|^5.0",
5150
"symfony/security-csrf": "^3.4|^4.0|^5.0",
5251
"symfony/security-http": "^3.4|^4.0|^5.0",
53-
"symfony/serializer": "^4.3|^5.0",
52+
"symfony/serializer": "^4.4|^5.0",
5453
"symfony/stopwatch": "^3.4|^4.0|^5.0",
5554
"symfony/translation": "^4.4|^5.0",
5655
"symfony/templating": "^3.4|^4.0|^5.0",

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy