From 14a4e4de27e0f0b5983cf30b40e0ce914180cdf4 Mon Sep 17 00:00:00 2001 From: Eric GELOEN Date: Thu, 29 May 2014 17:48:16 +0200 Subject: [PATCH] [Bridge][Twig] Replace deprecated features --- composer.json | 2 +- .../Bridge/Twig/Extension/FormExtension.php | 46 ++++++++++++++----- 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/composer.json b/composer.json index 9e2eee3214..395a874edb 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,7 @@ "php": ">=5.3.3", "symfony/icu": "~1.0", "doctrine/common": "~2.2", - "twig/twig": "~1.11", + "twig/twig": "~1.12", "psr/log": "~1.0" }, "replace": { diff --git a/src/Symfony/Bridge/Twig/Extension/FormExtension.php b/src/Symfony/Bridge/Twig/Extension/FormExtension.php index 74b2618af6..fe015a6bc4 100644 --- a/src/Symfony/Bridge/Twig/Extension/FormExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/FormExtension.php @@ -61,16 +61,16 @@ class FormExtension extends \Twig_Extension public function getFunctions() { return array( - 'form_enctype' => new \Twig_Function_Node('Symfony\Bridge\Twig\Node\FormEnctypeNode', array('is_safe' => array('html'))), - 'form_widget' => new \Twig_Function_Node('Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode', array('is_safe' => array('html'))), - 'form_errors' => new \Twig_Function_Node('Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode', array('is_safe' => array('html'))), - 'form_label' => new \Twig_Function_Node('Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode', array('is_safe' => array('html'))), - 'form_row' => new \Twig_Function_Node('Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode', array('is_safe' => array('html'))), - 'form_rest' => new \Twig_Function_Node('Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode', array('is_safe' => array('html'))), - 'form' => new \Twig_Function_Node('Symfony\Bridge\Twig\Node\RenderBlockNode', array('is_safe' => array('html'))), - 'form_start' => new \Twig_Function_Node('Symfony\Bridge\Twig\Node\RenderBlockNode', array('is_safe' => array('html'))), - 'form_end' => new \Twig_Function_Node('Symfony\Bridge\Twig\Node\RenderBlockNode', array('is_safe' => array('html'))), - 'csrf_token' => new \Twig_Function_Method($this, 'renderer->renderCsrfToken'), + new \Twig_SimpleFunction('form_enctype', null, array('node_class' => 'Symfony\Bridge\Twig\Node\FormEnctypeNode', 'is_safe' => array('html'))), + new \Twig_SimpleFunction('form_widget', null, array('node_class' => 'Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode', 'is_safe' => array('html'))), + new \Twig_SimpleFunction('form_errors', null, array('node_class' => 'Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode', 'is_safe' => array('html'))), + new \Twig_SimpleFunction('form_label', null, array('node_class' => 'Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode', 'is_safe' => array('html'))), + new \Twig_SimpleFunction('form_row', null, array('node_class' => 'Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode', 'is_safe' => array('html'))), + new \Twig_SimpleFunction('form_rest', null, array('node_class' => 'Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode', 'is_safe' => array('html'))), + new \Twig_SimpleFunction('form', null, array('node_class' => 'Symfony\Bridge\Twig\Node\RenderBlockNode', 'is_safe' => array('html'))), + new \Twig_SimpleFunction('form_start', null, array('node_class' => 'Symfony\Bridge\Twig\Node\RenderBlockNode', 'is_safe' => array('html'))), + new \Twig_SimpleFunction('form_end', null, array('node_class' => 'Symfony\Bridge\Twig\Node\RenderBlockNode', 'is_safe' => array('html'))), + new \Twig_SimpleFunction('csrf_token', array($this, 'renderCsrfToken')), ); } @@ -80,7 +80,7 @@ class FormExtension extends \Twig_Extension public function getFilters() { return array( - new \Twig_SimpleFilter('humanize', array($this->renderer, 'humanize')), + new \Twig_SimpleFilter('humanize', array($this, 'humanize')), ); } @@ -94,6 +94,30 @@ class FormExtension extends \Twig_Extension ); } + /** + * Renders a CSRF token. + * + * @param string $intention The intention of the protected action. + * + * @return string A CSRF token. + */ + public function renderCsrfToken($intention) + { + return $this->renderer->renderCsrfToken($intention); + } + + /** + * Makes a technical name human readable. + * + * @param string $text The text to humanize. + * + * @return string The humanized text. + */ + public function humanize($text) + { + return $this->renderer->humanize($text); + } + /** * Returns whether a choice is selected for a given form value. *