diff options
Diffstat (limited to 'inc/lib/Twig/Extension/Escaper.php')
| -rw-r--r-- | inc/lib/Twig/Extension/Escaper.php | 61 |
1 files changed, 33 insertions, 28 deletions
diff --git a/inc/lib/Twig/Extension/Escaper.php b/inc/lib/Twig/Extension/Escaper.php index c9a7f68e..46c2d84b 100644 --- a/inc/lib/Twig/Extension/Escaper.php +++ b/inc/lib/Twig/Extension/Escaper.php @@ -3,45 +3,39 @@ /* * This file is part of Twig. * - * (c) 2009 Fabien Potencier + * (c) Fabien Potencier * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ + +/** + * @final + */ class Twig_Extension_Escaper extends Twig_Extension { protected $defaultStrategy; + /** + * @param string|false|callable $defaultStrategy An escaping strategy + * + * @see setDefaultStrategy() + */ public function __construct($defaultStrategy = 'html') { $this->setDefaultStrategy($defaultStrategy); } - /** - * Returns the token parser instances to add to the existing list. - * - * @return array An array of Twig_TokenParserInterface or Twig_TokenParserBrokerInterface instances - */ public function getTokenParsers() { return array(new Twig_TokenParser_AutoEscape()); } - /** - * Returns the node visitor instances to add to the existing list. - * - * @return array An array of Twig_NodeVisitorInterface instances - */ public function getNodeVisitors() { return array(new Twig_NodeVisitor_Escaper()); } - /** - * Returns a list of filters to add to the existing list. - * - * @return array An array of filters - */ public function getFilters() { return array( @@ -53,43 +47,50 @@ class Twig_Extension_Escaper extends Twig_Extension * Sets the default strategy to use when not defined by the user. * * The strategy can be a valid PHP callback that takes the template - * "filename" as an argument and returns the strategy to use. + * name as an argument and returns the strategy to use. * - * @param mixed $defaultStrategy An escaping strategy + * @param string|false|callable $defaultStrategy An escaping strategy */ public function setDefaultStrategy($defaultStrategy) { // for BC if (true === $defaultStrategy) { + @trigger_error('Using "true" as the default strategy is deprecated since version 1.21. Use "html" instead.', E_USER_DEPRECATED); + $defaultStrategy = 'html'; } + if ('filename' === $defaultStrategy) { + @trigger_error('Using "filename" as the default strategy is deprecated since version 1.27. Use "name" instead.', E_USER_DEPRECATED); + + $defaultStrategy = 'name'; + } + + if ('name' === $defaultStrategy) { + $defaultStrategy = array('Twig_FileExtensionEscapingStrategy', 'guess'); + } + $this->defaultStrategy = $defaultStrategy; } /** * Gets the default strategy to use when not defined by the user. * - * @param string $filename The template "filename" + * @param string $name The template name * - * @return string The default strategy to use for the template + * @return string|false The default strategy to use for the template */ - public function getDefaultStrategy($filename) + public function getDefaultStrategy($name) { // disable string callables to avoid calling a function named html or js, // or any other upcoming escaping strategy - if (!is_string($this->defaultStrategy) && is_callable($this->defaultStrategy)) { - return call_user_func($this->defaultStrategy, $filename); + if (!is_string($this->defaultStrategy) && false !== $this->defaultStrategy) { + return call_user_func($this->defaultStrategy, $name); } return $this->defaultStrategy; } - /** - * Returns the name of the extension. - * - * @return string The extension name - */ public function getName() { return 'escaper'; @@ -100,8 +101,12 @@ class Twig_Extension_Escaper extends Twig_Extension * Marks a variable as being safe. * * @param string $string A PHP variable + * + * @return string */ function twig_raw_filter($string) { return $string; } + +class_alias('Twig_Extension_Escaper', 'Twig\Extension\EscaperExtension', false); |
