Skip to content

Commit f3d766e

Browse files
[Bridge\Twig] Trigger deprecation when using FormExtension::$renderer
1 parent 456e68b commit f3d766e

File tree

3 files changed

+56
-4
lines changed

3 files changed

+56
-4
lines changed

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

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ class FormExtension extends \Twig_Extension implements \Twig_Extension_InitRunti
2525
{
2626
private $renderer;
2727

28-
public function __construct(TwigRendererInterface $renderer = null)
28+
public function __construct(TwigRendererInterface $renderer = null, $triggerDeprecation = true)
2929
{
30-
if (null !== $this->renderer) {
30+
if ($triggerDeprecation && null !== $this->renderer) {
3131
@trigger_error(sprintf('Passing a Twig Form Renderer to the "%s" constructor is deprecated since version 3.2 and won\'t be possible in 4.0. Pass the Twig_Environment to the TwigRendererEngine constructor instead.', static::class), E_USER_DEPRECATED);
3232
}
3333
$this->renderer = $renderer;
@@ -94,6 +94,54 @@ public function getTests()
9494
);
9595
}
9696

97+
/**
98+
* @internal
99+
*/
100+
public function __get($name)
101+
{
102+
if ('renderer' === $name) {
103+
@trigger_error(sprintf('Using the "%s::$renderer" property is deprecated since version 3.2 as it will be removed in 4.0.', __CLASS__), E_USER_DEPRECATED);
104+
}
105+
106+
return $this->$name;
107+
}
108+
109+
/**
110+
* @internal
111+
*/
112+
public function __set($name, $value)
113+
{
114+
if ('renderer' === $name) {
115+
@trigger_error(sprintf('Using the "%s::$renderer" property is deprecated since version 3.2 as it will be removed in 4.0.', __CLASS__), E_USER_DEPRECATED);
116+
}
117+
118+
$this->$name = $value;
119+
}
120+
121+
/**
122+
* @internal
123+
*/
124+
public function __isset($name)
125+
{
126+
if ('renderer' === $name) {
127+
@trigger_error(sprintf('Using the "%s::$renderer" property is deprecated since version 3.2 as it will be removed in 4.0.', __CLASS__), E_USER_DEPRECATED);
128+
}
129+
130+
return isset($this->$name);
131+
}
132+
133+
/**
134+
* @internal
135+
*/
136+
public function __unset($name)
137+
{
138+
if ('renderer' === $name) {
139+
@trigger_error(sprintf('Using the "%s::$renderer" property is deprecated since version 3.2 as it will be removed in 4.0.', __CLASS__), E_USER_DEPRECATED);
140+
}
141+
142+
unset($this->$name);
143+
}
144+
97145
/**
98146
* {@inheritdoc}
99147
*/

src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,11 @@
118118
<argument type="service" id="router.request_context" on-invalid="ignore" />
119119
</service>
120120

121-
<service id="twig.extension.form" class="Symfony\Bridge\Twig\Extension\FormExtension" public="false" />
121+
122+
<service id="twig.extension.form" class="Symfony\Bridge\Twig\Extension\FormExtension" public="false">
123+
<argument type="service" id="twig.form.renderer" />
124+
<argument>false</argument>
125+
</service>
122126

123127
<service id="twig.extension.debug" class="Twig_Extension_Debug" public="false" />
124128

src/Symfony/Bundle/TwigBundle/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
],
1818
"require": {
1919
"php": ">=5.5.9",
20-
"symfony/twig-bridge": "~3.2",
20+
"symfony/twig-bridge": "~3.2,>=3.2.1",
2121
"symfony/http-foundation": "~2.8|~3.0",
2222
"symfony/http-kernel": "~2.8|~3.0",
2323
"twig/twig": "~1.28|~2.0"

0 commit comments

Comments
 (0)