summaryrefslogtreecommitdiff
path: root/inc/lib/Twig/Extension/Escaper.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/lib/Twig/Extension/Escaper.php')
-rw-r--r--inc/lib/Twig/Extension/Escaper.php61
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);