Skip to content

Commit 7057244

Browse files
committed
Added ErrorHandler component
1 parent dca9325 commit 7057244

File tree

105 files changed

+3540
-2145
lines changed

Some content is hidden

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

105 files changed

+3540
-2145
lines changed

src/Symfony/Bundle/FrameworkBundle/Console/Application.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
use Symfony\Component\Console\Output\ConsoleOutputInterface;
2020
use Symfony\Component\Console\Output\OutputInterface;
2121
use Symfony\Component\Console\Style\SymfonyStyle;
22-
use Symfony\Component\Debug\Exception\FatalThrowableError;
2322
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
23+
use Symfony\Component\ErrorHandler\Exception\FatalThrowableError;
2424
use Symfony\Component\HttpKernel\Bundle\Bundle;
2525
use Symfony\Component\HttpKernel\Kernel;
2626
use Symfony\Component\HttpKernel\KernelInterface;

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ public function load(array $configs, ContainerBuilder $container)
152152
$loader->load('web.xml');
153153
$loader->load('services.xml');
154154
$loader->load('fragment_renderer.xml');
155+
$loader->load('error_renderer.xml');
155156

156157
$container->registerAliasForArgument('parameter_bag', PsrContainerInterface::class);
157158

src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,11 @@
2929
use Symfony\Component\Cache\DependencyInjection\CachePoolPrunerPass;
3030
use Symfony\Component\Config\Resource\ClassExistenceResource;
3131
use Symfony\Component\Console\DependencyInjection\AddConsoleCommandPass;
32-
use Symfony\Component\Debug\ErrorHandler;
3332
use Symfony\Component\DependencyInjection\Compiler\PassConfig;
3433
use Symfony\Component\DependencyInjection\Compiler\RegisterReverseContainerPass;
3534
use Symfony\Component\DependencyInjection\ContainerBuilder;
35+
use Symfony\Component\ErrorHandler\DependencyInjection\ErrorHandlerPass;
36+
use Symfony\Component\ErrorHandler\ErrorHandler;
3637
use Symfony\Component\EventDispatcher\DependencyInjection\RegisterListenersPass;
3738
use Symfony\Component\Form\DependencyInjection\FormPass;
3839
use Symfony\Component\HttpFoundation\Request;
@@ -90,6 +91,7 @@ public function build(ContainerBuilder $container)
9091
KernelEvents::FINISH_REQUEST,
9192
];
9293

94+
$this->addCompilerPassIfExists($container, ErrorHandlerPass::class);
9395
$container->addCompilerPass(new LoggerPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION, -32);
9496
$container->addCompilerPass(new RegisterControllerArgumentLocatorsPass());
9597
$container->addCompilerPass(new RemoveEmptyControllerArgumentLocatorsPass(), PassConfig::TYPE_BEFORE_REMOVING);

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@
1919
<argument>null</argument><!-- Log levels map for enabled error levels -->
2020
<argument>%debug.error_handler.throw_at%</argument>
2121
<argument>%kernel.debug%</argument>
22-
<argument type="service" id="debug.file_link_formatter"></argument>
22+
<argument type="service" id="debug.file_link_formatter" />
2323
<argument>%kernel.debug%</argument>
2424
<argument>%kernel.charset%</argument>
25+
<argument type="service" id="error_handler.error_renderer" on-invalid="null" />
2526
</service>
2627

2728
<service id="debug.file_link_formatter" class="Symfony\Component\HttpKernel\Debug\FileLinkFormatter">
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
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 https://symfony.com/schema/dic/services/services-1.0.xsd">
6+
7+
<services>
8+
<defaults public="false" />
9+
10+
<service id="error_handler.error_renderer" class="Symfony\Component\ErrorHandler\DependencyInjection\ErrorRenderer">
11+
<argument /> <!-- error renderer locator -->
12+
</service>
13+
14+
<service id="error_handler.renderer.html" class="Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer">
15+
<tag name="error_handler.renderer" />
16+
<argument>%kernel.debug%</argument>
17+
<argument>%kernel.charset%</argument>
18+
<argument>%debug.file_link_format%</argument>
19+
</service>
20+
21+
<service id="error_handler.renderer.json" class="Symfony\Component\ErrorHandler\ErrorRenderer\JsonErrorRenderer">
22+
<tag name="error_handler.renderer" />
23+
<argument>%kernel.debug%</argument>
24+
</service>
25+
26+
<service id="error_handler.renderer.xml" class="Symfony\Component\ErrorHandler\ErrorRenderer\XmlErrorRenderer">
27+
<tag name="error_handler.renderer" format="atom" />
28+
<tag name="error_handler.renderer" />
29+
<argument>%kernel.debug%</argument>
30+
<argument>%kernel.charset%</argument>
31+
</service>
32+
33+
<service id="error_handler.renderer.txt" class="Symfony\Component\ErrorHandler\ErrorRenderer\TxtErrorRenderer">
34+
<tag name="error_handler.renderer" />
35+
<argument>%kernel.debug%</argument>
36+
<argument>%kernel.charset%</argument>
37+
</service>
38+
</services>
39+
</container>

src/Symfony/Bundle/FrameworkBundle/composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"symfony/config": "^4.2|^5.0",
2323
"symfony/dependency-injection": "^4.4|^5.0",
2424
"symfony/http-foundation": "^4.3|^5.0",
25-
"symfony/http-kernel": "^4.3|^5.0",
25+
"symfony/http-kernel": "^4.4|^5.0",
2626
"symfony/polyfill-mbstring": "~1.0",
2727
"symfony/filesystem": "^3.4|^4.0|^5.0",
2828
"symfony/finder": "^3.4|^4.0|^5.0",
@@ -69,6 +69,7 @@
6969
"symfony/asset": "<3.4",
7070
"symfony/browser-kit": "<4.3",
7171
"symfony/console": "<4.3",
72+
"symfony/debug": "<4.4",
7273
"symfony/dotenv": "<4.2",
7374
"symfony/dom-crawler": "<4.3",
7475
"symfony/form": "<4.3",

src/Symfony/Bundle/TwigBundle/Controller/ExceptionController.php

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

1212
namespace Symfony\Bundle\TwigBundle\Controller;
1313

14-
use Symfony\Component\Debug\Exception\FlattenException;
14+
use Symfony\Component\ErrorHandler\Exception\FlattenException;
1515
use Symfony\Component\HttpFoundation\Request;
1616
use Symfony\Component\HttpFoundation\Response;
1717
use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;

src/Symfony/Bundle/TwigBundle/Controller/PreviewErrorController.php

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

1212
namespace Symfony\Bundle\TwigBundle\Controller;
1313

14-
use Symfony\Component\Debug\Exception\FlattenException;
14+
use Symfony\Component\ErrorHandler\Exception\FlattenException;
1515
use Symfony\Component\HttpFoundation\Request;
1616
use Symfony\Component\HttpKernel\HttpKernelInterface;
1717

src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExceptionListenerPass.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public function process(ContainerBuilder $container)
2828
}
2929

3030
// register the exception controller only if Twig is enabled and required dependencies do exist
31-
if (!class_exists('Symfony\Component\Debug\Exception\FlattenException') || !interface_exists('Symfony\Component\EventDispatcher\EventSubscriberInterface')) {
31+
if (!class_exists('Symfony\Component\ErrorHandler\Exception\FlattenException') || !interface_exists('Symfony\Component\EventDispatcher\EventSubscriberInterface')) {
3232
$container->removeDefinition('twig.exception_listener');
3333
} elseif ($container->hasParameter('templating.engines')) {
3434
$engines = $container->getParameter('templating.engines');

src/Symfony/Bundle/TwigBundle/Tests/Controller/ExceptionControllerTest.php

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

1414
use Symfony\Bundle\TwigBundle\Controller\ExceptionController;
1515
use Symfony\Bundle\TwigBundle\Tests\TestCase;
16-
use Symfony\Component\Debug\Exception\FlattenException;
16+
use Symfony\Component\ErrorHandler\Exception\FlattenException;
1717
use Symfony\Component\HttpFoundation\Request;
1818
use Twig\Environment;
1919
use Twig\Loader\ArrayLoader;

0 commit comments

Comments
 (0)