Skip to content

Commit 6ea71cb

Browse files
committed
[TwigBridge] deprecate TwigRenderer
1 parent aa27974 commit 6ea71cb

15 files changed

+64
-31
lines changed

src/Symfony/Bridge/Twig/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
CHANGELOG
22
=========
33

4+
3.4.0
5+
-----
6+
7+
* deprecated `Symfony\Bridge\Twig\Form\TwigRenderer`
8+
49
3.3.0
510
-----
611

src/Symfony/Bridge/Twig/Extension/FormExtension.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public function getFunctions()
8484
new TwigFunction('form', null, array('node_class' => 'Symfony\Bridge\Twig\Node\RenderBlockNode', 'is_safe' => array('html'))),
8585
new TwigFunction('form_start', null, array('node_class' => 'Symfony\Bridge\Twig\Node\RenderBlockNode', 'is_safe' => array('html'))),
8686
new TwigFunction('form_end', null, array('node_class' => 'Symfony\Bridge\Twig\Node\RenderBlockNode', 'is_safe' => array('html'))),
87-
new TwigFunction('csrf_token', array('Symfony\Bridge\Twig\Form\TwigRenderer', 'renderCsrfToken')),
87+
new TwigFunction('csrf_token', array('Symfony\Component\Form\FormRenderer', 'renderCsrfToken')),
8888
);
8989
}
9090

@@ -94,7 +94,7 @@ public function getFunctions()
9494
public function getFilters()
9595
{
9696
return array(
97-
new TwigFilter('humanize', array('Symfony\Bridge\Twig\Form\TwigRenderer', 'humanize')),
97+
new TwigFilter('humanize', array('Symfony\Component\Form\FormRenderer', 'humanize')),
9898
);
9999
}
100100

src/Symfony/Bridge/Twig/Form/TwigRenderer.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,16 @@
1111

1212
namespace Symfony\Bridge\Twig\Form;
1313

14+
@trigger_error(sprintf('The %s class is deprecated since version 3.4 and will be removed in 4.0. Use %s instead.', TwigRenderer::class, FormRenderer::class), E_USER_DEPRECATED);
15+
1416
use Symfony\Component\Form\FormRenderer;
1517
use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
1618
use Twig\Environment;
1719

1820
/**
1921
* @author Bernhard Schussek <bschussek@gmail.com>
22+
*
23+
* @deprecated since version 3.4, to be removed in 4.0. Use Symfony\Component\Form\FormRenderer instead.
2024
*/
2125
class TwigRenderer extends FormRenderer implements TwigRendererInterface
2226
{

src/Symfony/Bridge/Twig/Node/FormThemeNode.php

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

1212
namespace Symfony\Bridge\Twig\Node;
1313

14+
use Symfony\Bridge\Twig\Form\TwigRenderer;
15+
use Symfony\Component\Form\FormRenderer;
1416
use Twig\Compiler;
17+
use Twig\Error\RuntimeError;
1518
use Twig\Node\Node;
1619

1720
/**
@@ -26,9 +29,18 @@ public function __construct(Node $form, Node $resources, $lineno, $tag = null)
2629

2730
public function compile(Compiler $compiler)
2831
{
32+
try {
33+
$compiler->getEnvironment()->getRuntime(FormRenderer::class);
34+
$renderer = FormRenderer::class;
35+
} catch (RuntimeError $e) {
36+
$renderer = TwigRenderer::class;
37+
}
38+
2939
$compiler
3040
->addDebugInfo($this)
31-
->write('$this->env->getRuntime(\'Symfony\Bridge\Twig\Form\TwigRenderer\')->setTheme(')
41+
->write('$this->env->getRuntime(')
42+
->string($renderer)
43+
->raw(')->setTheme(')
3244
->subcompile($this->getNode('form'))
3345
->raw(', ')
3446
->subcompile($this->getNode('resources'))

src/Symfony/Bridge/Twig/Node/RenderBlockNode.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public function compile(Compiler $compiler)
2828
{
2929
$compiler->addDebugInfo($this);
3030
$arguments = iterator_to_array($this->getNode('arguments'));
31-
$compiler->write('$this->env->getRuntime(\'Symfony\Bridge\Twig\Form\TwigRenderer\')->renderBlock(');
31+
$compiler->write('$this->env->getRuntime(\'Symfony\Component\Form\FormRenderer\')->renderBlock(');
3232

3333
if (isset($arguments[0])) {
3434
$compiler->subcompile($arguments[0]);

src/Symfony/Bridge/Twig/Node/SearchAndRenderBlockNode.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class SearchAndRenderBlockNode extends FunctionExpression
2424
public function compile(Compiler $compiler)
2525
{
2626
$compiler->addDebugInfo($this);
27-
$compiler->raw('$this->env->getRuntime(\'Symfony\Bridge\Twig\Form\TwigRenderer\')->searchAndRenderBlock(');
27+
$compiler->raw('$this->env->getRuntime(\'Symfony\Component\Form\FormRenderer\')->searchAndRenderBlock(');
2828

2929
preg_match('/_([^_]+)$/', $this->getAttribute('name'), $matches);
3030

src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap3HorizontalLayoutTest.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
namespace Symfony\Bridge\Twig\Tests\Extension;
1313

1414
use Symfony\Bridge\Twig\Extension\FormExtension;
15-
use Symfony\Bridge\Twig\Form\TwigRenderer;
1615
use Symfony\Bridge\Twig\Form\TwigRendererEngine;
1716
use Symfony\Bridge\Twig\Extension\TranslationExtension;
1817
use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubTranslator;
1918
use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubFilesystemLoader;
19+
use Symfony\Component\Form\FormRenderer;
2020
use Symfony\Component\Form\FormView;
2121
use Symfony\Component\Form\Tests\AbstractBootstrap3HorizontalLayoutTest;
2222
use Twig\Environment;
@@ -29,6 +29,9 @@ class FormExtensionBootstrap3HorizontalLayoutTest extends AbstractBootstrap3Hori
2929
'choice_attr',
3030
);
3131

32+
/**
33+
* @var FormRenderer
34+
*/
3235
private $renderer;
3336

3437
protected function setUp()
@@ -48,7 +51,7 @@ protected function setUp()
4851
'bootstrap_3_horizontal_layout.html.twig',
4952
'custom_widgets.html.twig',
5053
), $environment);
51-
$this->renderer = new TwigRenderer($rendererEngine, $this->getMockBuilder('Symfony\Component\Security\Csrf\CsrfTokenManagerInterface')->getMock());
54+
$this->renderer = new FormRenderer($rendererEngine, $this->getMockBuilder('Symfony\Component\Security\Csrf\CsrfTokenManagerInterface')->getMock());
5255
$this->registerTwigRuntimeLoader($environment, $this->renderer);
5356
}
5457

src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap3LayoutTest.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
namespace Symfony\Bridge\Twig\Tests\Extension;
1313

1414
use Symfony\Bridge\Twig\Extension\FormExtension;
15-
use Symfony\Bridge\Twig\Form\TwigRenderer;
1615
use Symfony\Bridge\Twig\Form\TwigRendererEngine;
1716
use Symfony\Bridge\Twig\Extension\TranslationExtension;
1817
use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubTranslator;
1918
use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubFilesystemLoader;
19+
use Symfony\Component\Form\FormRenderer;
2020
use Symfony\Component\Form\FormView;
2121
use Symfony\Component\Form\Tests\AbstractBootstrap3LayoutTest;
2222
use Twig\Environment;
@@ -25,6 +25,9 @@ class FormExtensionBootstrap3LayoutTest extends AbstractBootstrap3LayoutTest
2525
{
2626
use RuntimeLoaderProvider;
2727

28+
/**
29+
* @var FormRenderer
30+
*/
2831
private $renderer;
2932

3033
protected function setUp()
@@ -44,7 +47,7 @@ protected function setUp()
4447
'bootstrap_3_layout.html.twig',
4548
'custom_widgets.html.twig',
4649
), $environment);
47-
$this->renderer = new TwigRenderer($rendererEngine, $this->getMockBuilder('Symfony\Component\Security\Csrf\CsrfTokenManagerInterface')->getMock());
50+
$this->renderer = new FormRenderer($rendererEngine, $this->getMockBuilder('Symfony\Component\Security\Csrf\CsrfTokenManagerInterface')->getMock());
4851
$this->registerTwigRuntimeLoader($environment, $this->renderer);
4952
}
5053

src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
namespace Symfony\Bridge\Twig\Tests\Extension;
1313

1414
use Symfony\Bridge\Twig\Extension\FormExtension;
15-
use Symfony\Bridge\Twig\Form\TwigRenderer;
1615
use Symfony\Bridge\Twig\Form\TwigRendererEngine;
1716
use Symfony\Bridge\Twig\Extension\TranslationExtension;
1817
use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubTranslator;
1918
use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubFilesystemLoader;
2019
use Symfony\Component\Form\ChoiceList\View\ChoiceView;
20+
use Symfony\Component\Form\FormRenderer;
2121
use Symfony\Component\Form\FormView;
2222
use Symfony\Component\Form\Tests\AbstractDivLayoutTest;
2323
use Twig\Environment;
@@ -26,6 +26,9 @@ class FormExtensionDivLayoutTest extends AbstractDivLayoutTest
2626
{
2727
use RuntimeLoaderProvider;
2828

29+
/**
30+
* @var FormRenderer
31+
*/
2932
private $renderer;
3033

3134
protected function setUp()
@@ -48,7 +51,7 @@ protected function setUp()
4851
'form_div_layout.html.twig',
4952
'custom_widgets.html.twig',
5053
), $environment);
51-
$this->renderer = new TwigRenderer($rendererEngine, $this->getMockBuilder('Symfony\Component\Security\Csrf\CsrfTokenManagerInterface')->getMock());
54+
$this->renderer = new FormRenderer($rendererEngine, $this->getMockBuilder('Symfony\Component\Security\Csrf\CsrfTokenManagerInterface')->getMock());
5255
$this->registerTwigRuntimeLoader($environment, $this->renderer);
5356
}
5457

src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionTableLayoutTest.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212
namespace Symfony\Bridge\Twig\Tests\Extension;
1313

14+
use Symfony\Component\Form\FormRenderer;
1415
use Symfony\Component\Form\FormView;
15-
use Symfony\Bridge\Twig\Form\TwigRenderer;
1616
use Symfony\Bridge\Twig\Form\TwigRendererEngine;
1717
use Symfony\Bridge\Twig\Extension\FormExtension;
1818
use Symfony\Bridge\Twig\Extension\TranslationExtension;
@@ -25,6 +25,9 @@ class FormExtensionTableLayoutTest extends AbstractTableLayoutTest
2525
{
2626
use RuntimeLoaderProvider;
2727

28+
/**
29+
* @var FormRenderer
30+
*/
2831
private $renderer;
2932

3033
protected function setUp()
@@ -45,7 +48,7 @@ protected function setUp()
4548
'form_table_layout.html.twig',
4649
'custom_widgets.html.twig',
4750
), $environment);
48-
$this->renderer = new TwigRenderer($rendererEngine, $this->getMockBuilder('Symfony\Component\Security\Csrf\CsrfTokenManagerInterface')->getMock());
51+
$this->renderer = new FormRenderer($rendererEngine, $this->getMockBuilder('Symfony\Component\Security\Csrf\CsrfTokenManagerInterface')->getMock());
4952
$this->registerTwigRuntimeLoader($environment, $this->renderer);
5053
}
5154

0 commit comments

Comments
 (0)