diff --git a/UPGRADE-4.0.md b/UPGRADE-4.0.md index e0c90e2cbee1c..513c47fb51992 100644 --- a/UPGRADE-4.0.md +++ b/UPGRADE-4.0.md @@ -498,6 +498,14 @@ TwigBundle TwigBridge ---------- + * Removed the `TwigRendererInterface` interface. + + * Removed the `TwigRendererEngineInterface` interface. + + * Required an Twig Environment as the second argument for the `TwigRendererEngine`constructor. + + * Removed the `renderer` property of the `FormExtension` class. + * Removed the possibility to inject the Form `TwigRenderer` into the `FormExtension`. Upgrade Twig to `^1.30`, inject the `Twig_Environment` into the `TwigRendererEngine` and load the `TwigRenderer` using the `Twig_FactoryRuntimeLoader` instead. diff --git a/src/Symfony/Bridge/Twig/CHANGELOG.md b/src/Symfony/Bridge/Twig/CHANGELOG.md index b59d85ea0b4a4..ba0e0409737d5 100644 --- a/src/Symfony/Bridge/Twig/CHANGELOG.md +++ b/src/Symfony/Bridge/Twig/CHANGELOG.md @@ -1,6 +1,14 @@ CHANGELOG ========= +4.0.0 +----- + + * removed the `TwigRendererInterface` interface + * removed the `TwigRendererEngineInterface` interface + * required an Twig Environment as the second argument for the `TwigRendererEngine` constructor + * removed the `renderer` property of the `FormExtension` class + 3.3.0 ----- diff --git a/src/Symfony/Bridge/Twig/Extension/FormExtension.php b/src/Symfony/Bridge/Twig/Extension/FormExtension.php index 362879e43a89e..96066b60bb8bc 100644 --- a/src/Symfony/Bridge/Twig/Extension/FormExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/FormExtension.php @@ -12,12 +12,8 @@ namespace Symfony\Bridge\Twig\Extension; use Symfony\Bridge\Twig\TokenParser\FormThemeTokenParser; -use Symfony\Bridge\Twig\Form\TwigRendererInterface; -use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\Form\ChoiceList\View\ChoiceView; -use Twig\Environment; use Twig\Extension\AbstractExtension; -use Twig\Extension\InitRuntimeInterface; use Twig\TwigFilter; use Twig\TwigFunction; use Twig\TwigTest; @@ -28,37 +24,8 @@ * @author Fabien Potencier * @author Bernhard Schussek */ -class FormExtension extends AbstractExtension implements InitRuntimeInterface +class FormExtension extends AbstractExtension { - /** - * @deprecated since version 3.2, to be removed in 4.0 alongside with magic methods below - */ - private $renderer; - - public function __construct($renderer = null) - { - if ($renderer instanceof TwigRendererInterface) { - @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); - } elseif (null !== $renderer && !(is_array($renderer) && isset($renderer[0], $renderer[1]) && $renderer[0] instanceof ContainerInterface)) { - throw new \InvalidArgumentException(sprintf('Passing any arguments the constructor of %s is reserved for internal use.', __CLASS__)); - } - $this->renderer = $renderer; - } - - /** - * {@inheritdoc} - * - * To be removed in 4.0 - */ - public function initRuntime(Environment $environment) - { - if ($this->renderer instanceof TwigRendererInterface) { - $this->renderer->setEnvironment($environment); - } elseif (null !== $this->renderer) { - $this->renderer[2] = $environment; - } - } - /** * {@inheritdoc} */ @@ -108,62 +75,6 @@ public function getTests() ); } - /** - * @internal - */ - public function __get($name) - { - if ('renderer' === $name) { - @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); - - if (is_array($this->renderer)) { - $renderer = $this->renderer[0]->get($this->renderer[1]); - if (isset($this->renderer[2])) { - $renderer->setEnvironment($this->renderer[2]); - } - $this->renderer = $renderer; - } - } - - return $this->$name; - } - - /** - * @internal - */ - public function __set($name, $value) - { - if ('renderer' === $name) { - @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); - } - - $this->$name = $value; - } - - /** - * @internal - */ - public function __isset($name) - { - if ('renderer' === $name) { - @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); - } - - return isset($this->$name); - } - - /** - * @internal - */ - public function __unset($name) - { - if ('renderer' === $name) { - @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); - } - - unset($this->$name); - } - /** * {@inheritdoc} */ diff --git a/src/Symfony/Bridge/Twig/Form/TwigRenderer.php b/src/Symfony/Bridge/Twig/Form/TwigRenderer.php index 9718c29cdb689..e11408bf39998 100644 --- a/src/Symfony/Bridge/Twig/Form/TwigRenderer.php +++ b/src/Symfony/Bridge/Twig/Form/TwigRenderer.php @@ -12,31 +12,11 @@ namespace Symfony\Bridge\Twig\Form; use Symfony\Component\Form\FormRenderer; -use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface; -use Twig\Environment; +use Symfony\Component\Form\FormRendererInterface; /** * @author Bernhard Schussek */ -class TwigRenderer extends FormRenderer implements TwigRendererInterface +class TwigRenderer extends FormRenderer implements FormRendererInterface { - /** - * @var TwigRendererEngineInterface - */ - private $engine; - - public function __construct(TwigRendererEngineInterface $engine, CsrfTokenManagerInterface $csrfTokenManager = null) - { - parent::__construct($engine, $csrfTokenManager); - - $this->engine = $engine; - } - - /** - * {@inheritdoc} - */ - public function setEnvironment(Environment $environment) - { - $this->engine->setEnvironment($environment); - } } diff --git a/src/Symfony/Bridge/Twig/Form/TwigRendererEngine.php b/src/Symfony/Bridge/Twig/Form/TwigRendererEngine.php index 7e375f45e2996..77263759acea7 100644 --- a/src/Symfony/Bridge/Twig/Form/TwigRendererEngine.php +++ b/src/Symfony/Bridge/Twig/Form/TwigRendererEngine.php @@ -12,6 +12,7 @@ namespace Symfony\Bridge\Twig\Form; use Symfony\Component\Form\AbstractRendererEngine; +use Symfony\Component\Form\FormRendererEngineInterface; use Symfony\Component\Form\FormView; use Twig\Environment; use Twig\Template; @@ -19,7 +20,7 @@ /** * @author Bernhard Schussek */ -class TwigRendererEngine extends AbstractRendererEngine implements TwigRendererEngineInterface +class TwigRendererEngine extends AbstractRendererEngine implements FormRendererEngineInterface { /** * @var Environment @@ -31,30 +32,12 @@ class TwigRendererEngine extends AbstractRendererEngine implements TwigRendererE */ private $template; - public function __construct(array $defaultThemes = array(), Environment $environment = null) + public function __construct(array $defaultThemes = array(), Environment $environment) { - if (null === $environment) { - @trigger_error(sprintf('Not passing a Twig Environment as the second argument for "%s" constructor is deprecated since version 3.2 and won\'t be possible in 4.0.', static::class), E_USER_DEPRECATED); - } - parent::__construct($defaultThemes); $this->environment = $environment; } - /** - * {@inheritdoc} - * - * @deprecated since version 3.3, to be removed in 4.0 - */ - public function setEnvironment(Environment $environment) - { - if ($this->environment) { - @trigger_error(sprintf('The "%s()" method is deprecated since version 3.3 and will be removed in 4.0. Pass the Twig Environment as second argument of the constructor instead.', __METHOD__), E_USER_DEPRECATED); - } - - $this->environment = $environment; - } - /** * {@inheritdoc} */ diff --git a/src/Symfony/Bridge/Twig/Form/TwigRendererEngineInterface.php b/src/Symfony/Bridge/Twig/Form/TwigRendererEngineInterface.php deleted file mode 100644 index a58f491f1c8a0..0000000000000 --- a/src/Symfony/Bridge/Twig/Form/TwigRendererEngineInterface.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Twig\Form; - -use Symfony\Component\Form\FormRendererEngineInterface; -use Twig\Environment; - -// BC/FC with namespaced Twig -class_exists('Twig\Environment'); - -/** - * @author Bernhard Schussek - * - * @deprecated since version 3.2, to be removed in 4.0. - */ -interface TwigRendererEngineInterface extends FormRendererEngineInterface -{ - public function setEnvironment(Environment $environment); -} diff --git a/src/Symfony/Bridge/Twig/Form/TwigRendererInterface.php b/src/Symfony/Bridge/Twig/Form/TwigRendererInterface.php deleted file mode 100644 index 3bcbf5992d76f..0000000000000 --- a/src/Symfony/Bridge/Twig/Form/TwigRendererInterface.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Twig\Form; - -use Symfony\Component\Form\FormRendererInterface; -use Twig\Environment; - -// BC/FC with namespaced Twig -class_exists('Twig\Environment'); - -/** - * @author Bernhard Schussek - * - * @deprecated since version 3.2, to be removed in 4.0. - */ -interface TwigRendererInterface extends FormRendererInterface -{ - public function setEnvironment(Environment $environment); -}