8000 removed the form runtime class as it's not needed · symfony/symfony@84e0d03 · GitHub
[go: up one dir, main page]

Skip to content

Commit 84e0d03

Browse files
committed
removed the form runtime class as it's not needed
1 parent 2fed6d3 commit 84e0d03

14 files changed

+88
-145
lines changed

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

Lines changed: 0 additions & 92 deletions
This file was deleted.

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

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@
1212
namespace Symfony\Bridge\Twig\Form;
1313

1414
use Symfony\Component\Form\FormRenderer;
15-
use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
15+
use Symfony\Component\Form\ChoiceList\View\ChoiceView;
1616

1717
/**
1818
* @author Bernhard Schussek <bschussek@gmail.com>
19+
*
20+
* @internal
1921
*/
2022
class TwigRenderer extends FormRenderer implements TwigRendererInterface
2123
{
@@ -27,4 +29,36 @@ class TwigRenderer extends FormRenderer implements TwigRendererInterface
2729
public function setEnvironment(\Twig_Environment $environment)
2830
{
2931
}
32+
33+
/**
34+
* Returns whether a choice is selected for a given form value.
35+
*
36+
* Unfortunately Twig does not support an efficient way to execute the
37+
* "is_selected" closure passed to the template by ChoiceType. It is faster
38+
* to implement the logic here (around 65ms for a specific form).
39+< 9E88 div class="diff-text-inner"> *
40+
* Directly implementing the logic here is also faster than doing so in
41+
* ChoiceView (around 30ms).
42+
*
43+
* The worst option tested so far is to implement the logic in ChoiceView
44+
* and access the ChoiceView method directly in the template. Doing so is
45+
* around 220ms slower than doing the method call here in the filter. Twig
46+
* seems to be much more efficient at executing filters than at executing
47+
* methods of an object.
48+
*
49+
* @param ChoiceView $choice The choice to check.
50+
* @param string|array $selectedValue The selected value to compare.
51+
*
52+
* @return bool Whether the choice is selected.
53+
*
54+
* @see ChoiceView::isSelected()
55+
*/
56+
public function isSelectedChoice(ChoiceView $choice, $selectedValue)
57+
{
58+
if (is_array($selectedValue)) {
59+
return in_array($choice->value, $selectedValue, true);
60+
}
61+
62+
return $choice->value === $selectedValue;
63+
}
3064
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
/**
1818
* @author Bernhard Schussek <bschussek@gmail.com>
19+
*
20+
* @internal
1921
*/
2022
class TwigRendererEngine extends AbstractRendererEngine implements TwigRendererEngineInterface
2123
{

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
* @author Bernhard Schussek <bschussek@gmail.com>
1818
*
1919
* @deprecated Deprecated in 2.8, to be removed in 3.0.
20+
*
21+
* @internal
2022
*/
2123
interface TwigRendererEngineInterface extends FormRendererEngineInterface
2224
{

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
* @author Bernhard Schussek <bschussek@gmail.com>
1818
*
1919
* @deprecated Deprecated in 2.8, to be removed in 3.0.
20+
*
21+
* @internal
2022
*/
2123
interface TwigRendererInterface extends FormRendererInterface
2224
{

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public function compile(\Twig_Compiler $compiler)
3030
{
3131
$compiler
3232
->addDebugInfo($this)
33-
->write('$this->env->getRuntime(\'form\')->renderer->setTheme(')
33+
->write('$this->env->getRuntime(\'form\')->setTheme(')
3434
->subcompile($this->getNode('form'))
3535
->raw(', ')
3636
->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
@@ -25,7 +25,7 @@ public function compile(\Twig_Compiler $compiler)
2525
{
2626
$compiler->addDebugInfo($this);
2727
$arguments = iterator_to_array($this->getNode('arguments'));
28-
$compiler->write('$this->env->getRuntime(\'form\')->renderer->renderBlock(');
28+
$compiler->write('$this->env->getRuntime(\'form\')->renderBlock(');
2929

3030
if (isset($arguments[0])) {
3131
$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
@@ -19,7 +19,7 @@ class SearchAndRenderBlockNode extends \Twig_Node_Expression_Function
1919
public function compile(\Twig_Compiler $compiler)
2020
{
2121
$compiler->addDebugInfo($this);
22-
$compiler->raw('$this->env->getRuntime(\'form\')->renderer->searchAndRenderBlock(');
22+
$compiler->raw('$this->env->getRuntime(\'form\')->searchAndRenderBlock(');
2323

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

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

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

1414
use Symfony\Bridge\Twig\Extension\FormExtension;
15-
use Symfony\Bridge\Twig\Extension\FormExtensionRuntime;
1615
use Symfony\Bridge\Twig\Form\TwigRenderer;
1716
use Symfony\Bridge\Twig\Form\TwigRendererEngine;
1817
use Symfony\Bridge\Twig\Extension\TranslationExtension;
@@ -50,7 +49,7 @@ protected function setUp()
5049

5150
$loader = $this->getMock('Twig_RuntimeLoaderInterface');
5251
$loader->expects($this->any())->method('load')->will($this->returnValueMap(array(
53-
array('form', new FormExtensionRuntime($renderer)),
52+
array('form', $renderer),
5453
array('translator', null),
5554
)));
5655

@@ -83,7 +82,7 @@ public function testStartTagHasActionAttributeWhenActionIsZero()
8382

8483
protected function renderForm(FormView $view, array $vars = array())
8584
{
86-
return (string) $this->environment->getRuntime('form')->renderer->renderBlock($view, 'form', $vars);
85+
return (string) $this->environment->getRuntime('form')->renderBlock($view, 'form', $vars);
8786
}
8887

8988
protected function renderLabel(FormView $view, $label = null, array $vars = array())
@@ -92,41 +91,41 @@ protected function renderLabel(FormView $view, $label = null, array $vars = arra
9291
$vars += array('label' => $label);
9392
}
9493

95-
return (string) $this->environment->getRuntime('form')->renderer->searchAndRenderBlock($view, 'label', $vars);
94+
return (string) $this->environment->getRuntime('form')->searchAndRenderBlock($view, 'label', $vars);
9695
}
9796

9897
protected function renderErrors(FormView $view)
9998
{
100-
return (string) $this->environment->getRuntime('form')->renderer->searchAndRenderBlock($view, 'errors');
99+
return (string) $this->environment->getRuntime('form')->searchAndRenderBlock($view, 'errors');
101100
}
102101

103102
protected function renderWidget(FormView $view, array $vars = array())
104103
{
105-
return (string) $this->environment->getRuntime('form')->renderer->searchAndRenderBlock($view, 'widget', $vars);
104+
return (string) $this->environment->getRuntime('form')->searchAndRenderBlock($view, 'widget', $vars);
106105
}
107106

108107
protected function renderRow(FormView $view, array $vars = array())
109108
{
110-
return (string) $this->environment->getRuntime('form')->renderer->searchAndRenderBlock($view, 'row', $vars);
109+
return (string) $this->environment->getRuntime('form')->searchAndRenderBlock($view, 'row', $vars);
111110
}
112111

113112
protected function renderRest(FormView $view, array $vars = array())
114113
{
115-
return (string) $this->environment->getRuntime('form')->renderer->searchAndRenderBlock($view, 'rest', $vars);
114+
return (string) $this->environment->getRuntime('form')->searchAndRenderBlock($view, 'rest', $vars);
116115
}
117116

118117
protected function renderStart(FormView $view, array $vars = array())
119118
{
120-
return (string) $this->environment->getRuntime('form')->renderer->renderBlock($view, 'form_start', $vars);
119+
return (string) $this->environment->getRuntime('form')->renderBlock($view, 'form_start', $vars);
121120
}
122121

123122
protected function renderEnd(FormView $view, array $vars = array())
124123
{
125-
return (string) $this->environment->getRuntime('form')->renderer->renderBlock($view, 'form_end', $vars);
124+
return (string) $this->environment->getRuntime('form')->renderBlock($view, 'form_end', $vars);
126125
}
127126

128127
protected function setTheme(FormView $view, array $themes)
129128
{
130-
$this->environment->getRuntime('form')->renderer->setTheme($view, $themes);
129+
$this->environment->getRuntime('form')->setTheme($view, $themes);
131130
}
132131
}

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

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

1414
use Symfony\Bridge\Twig\Extension\FormExtension;
15-
use Symfony\Bridge\Twig\Extension\FormExtensionRuntime;
1615
use Symfony\Bridge\Twig\Form\TwigRenderer;
1716
use Symfony\Bridge\Twig\Form\TwigRendererEngine;
1817
use Symfony\Bridge\Twig\Extension\TranslationExtension;
@@ -54,7 +53,7 @@ protected function setUp()
5453

5554
$loader = $this->getMock('Twig_RuntimeLoaderInterface');
5655
$loader->expects($this->any())->method('load')->will($this->returnValueMap(array(
57-
array('form', new FormExtensionRuntime($renderer)),
56+
array('form', $renderer),
5857
array('translator', null),
5958
)));
6059

@@ -98,7 +97,7 @@ public function testThemeBlockInheritanceUsingDynamicExtend()
9897
->createView()
9998
;
10099

101-
$renderer = $this->environment->getRuntime('form')->renderer;
100+
$renderer = $this->environment->getRuntime('form');
102101
$renderer->setTheme($view, array('page_dynamic_extends.html.twig'));
103102
$renderer->searchAndRenderBlock($view, 'row');
104103
}
@@ -155,7 +154,7 @@ public function testStartTagHasActionAttributeWhenActionIsZero()
155154

156155
protected function renderForm(FormView $view, array $vars = array())
157156
{
158-
return (string) $this->environment->getRuntime('form')->renderer->renderBlock($view, 'form', $vars);
157+
return (string) $this->environment->getRuntime('form')->renderBlock($view, 'form', $vars);
159158
}
160159

161160
protected function renderLabel(FormView $view, $label = null, array $vars = array())
@@ -164,42 +163,42 @@ protected function renderLabel(FormView $view, $label = null, array $vars = arra
164163
$vars += array('label' => $label);
165164
}
166165

167-
return (string) $this->environment->getRuntime('form')->renderer->searchAndRenderBlock($view, 'label', $vars);
166+
return (string) $this->environment->getRuntime('form')->searchAndRenderBlock($view, 'label', $vars);
168167
}
169168

170169
protected function renderErrors(FormView $view)
171170
{
172-
return (string) $this->environment->getRuntime('form')->renderer->searchAndRenderBlock($view, 'errors');
171+
return (string) $this->environment->getRuntime('form')->searchAndRenderBlock($view, 'errors');
173172
}
174173

175174
protected function renderWidget(FormView $view, array $vars = array())
176175
{
177-
return (string) $this->environment->getRuntime('form')->renderer->searchAndRenderBlock($view, 'widget', $vars);
176+
return (string) $this->environment->getRuntime('form')->searchAndRenderBlock($view, 'widget', $vars);
178177
}
179178

180179
protected function renderRow(FormView $view, array $vars = array())
181180
{
182-
return (string) $this->environment->getRuntime('form')->renderer->searchAndRenderBlock($view, 'row', $vars);
181+
return (string) $this->environment->getRuntime('form')->searchAndRenderBlock($view, 'row', $vars);
183182
}
184183

185184
protected function renderRest(FormView $view, array $vars = array())
186185
{
187-
return (string) $this->environment->getRuntime('form')->renderer->searchAndRenderBlock($view, 'rest', $vars);
186+
return (string) $this->environment->getRuntime('form')->searchAndRenderBlock($view, 'rest', $vars);
188187
}
189188

190189
protected function renderStart(FormView $view, array $vars = array())
191190
{
192-
return (string) $this->environment->getRuntime('form')->renderer->renderBlock($view, 'form_start', $vars);
191+
return (string) $this->environment->getRuntime('form')->renderBlock($view, 'form_start', $vars);
193192
}
194193

195194
protected function renderEnd(FormView $view, array $vars = array())
196195
{
197-
return (string) $this->environment->getRuntime('form')->renderer->renderBlock($view, 'form_end', $vars);
196+
return (string) $this->environment->getRuntime('form')->renderBlock($view, 'form_end', $vars);
198197
}
199198

200199
protected function setTheme(FormView $view, array $themes)
201200
{
202-
$this->environment->getRuntime('form')->renderer->setTheme($view, $themes);
201+
$this->environment->getRuntime('form')->setTheme($view, $themes);
203202
}
204203

205204
public static function themeBlockInheritanceProvider()

0 commit comments

Comments
 (0)
0