Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a043bf7

Browse files
committed
Changes according to reviews
1 parent 7eaf087 commit a043bf7

File tree

4 files changed

+42
-12
lines changed

4 files changed

+42
-12
lines changed

src/Symfony/Bridge/Twig/ErrorRenderer/TwigErrorRenderer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public function __construct(
3737
?ErrorRendererInterface $fallbackErrorRenderer = null,
3838
bool|callable $debug = false,
3939
) {
40-
$this->fallbackErrorRenderer = \in_array(\PHP_SAPI, ['cli', 'phpdbg', 'embed'], true) ? new CliErrorRenderer() : ($fallbackErrorRenderer ?? new HtmlErrorRenderer());
40+
$this->fallbackErrorRenderer = $fallbackErrorRenderer ?? new HtmlErrorRenderer();
4141
$this->debug = \is_bool($debug) ? $debug : $debug(...);
4242
}
4343

src/Symfony/Bridge/Twig/Tests/ErrorRenderer/TwigErrorRendererTest.php

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,25 @@
1414
use PHPUnit\Framework\TestCase;
1515
use Symfony\Bridge\Twig\ErrorRenderer\TwigErrorRenderer;
1616
use Symfony\Component\ErrorHandler\ErrorRenderer\CliErrorRenderer;
17+
use Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer;
18+
use Symfony\Component\ErrorHandler\Exception\FlattenException;
1719
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
1820
use Twig\Environment;
1921
use Twig\Loader\ArrayLoader;
2022

2123
class TwigErrorRendererTest extends TestCase
2224
{
23-
public function testDontUseNativeRenderInCliContext()
25+
public function tesFallbackRenderer()
2426
{
25-
$exception = new \Exception();
26-
2727
$twig = $this->createMock(Environment::class);
28-
$nativeRenderer = $this->createMock(CliErrorRenderer::class);
29-
$nativeRenderer
30-
->expects($this->never())
31-
->method('render')
32-
->with($exception)
33-
;
34-
35-
(new TwigErrorRenderer($twig, $nativeRenderer, true))->render(new \Exception());
28+
$customRenderer = new class implements ErrorRendererInterface {
29+
public function render(\Throwable $exception): FlattenException
30+
{
31+
return 'This is a custom error renderer.';
32+
}
33+
};
34+
35+
$this->assertSame('This is a custom error renderer.', (new TwigErrorRenderer($twig, $customRenderer, true))->render(new \Exception()));
3636
}
3737

3838
public function testCliRenderer()

src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public function load(array $configs, ContainerBuilder $container): void
4242
{
4343
$loader = new PhpFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
4444
$loader->load('twig.php');
45+
$loader->load('twig_test.php');
4546

4647
if (method_exists(Environment::class, 'resetGlobals')) {
4748
$container->getDefinition('twig')->addTag('kernel.reset', ['method' => 'resetGlobals']);
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <[email protected]>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
13+
14+
use Symfony\Bridge\Twig\ErrorRenderer\TwigErrorRenderer;
15+
use Symfony\Component\ErrorHandler\ErrorRenderer\CliErrorRenderer;
16+
17+
return static function (ContainerConfigurator $container) {
18+
$container->services()
19+
->set('twig.error_renderer.html', TwigErrorRenderer::class)
20+
->decorate('error_renderer.html')
21+
->args([
22+
service('twig'),
23+
inline_service(CliErrorRenderer::class),
24+
inline_service('bool')
25+
->factory([TwigErrorRenderer::class, 'isDebug'])
26+
->args([service('request_stack'), param('kernel.debug')]),
27+
])
28+
;
29+
};

0 commit comments

Comments
 (0)