simplified the implementation of the replace filter
authorFabien Potencier <fabien.potencier@gmail.com>
Sun, 27 Nov 2011 13:58:28 +0000 (14:58 +0100)
committerFabien Potencier <fabien.potencier@gmail.com>
Sun, 27 Nov 2011 13:58:36 +0000 (14:58 +0100)
lib/Twig/Extension/Core.php
test/Twig/Tests/Fixtures/filters/replace.test [new file with mode: 0644]

index f98ce5a..b79807f 100644 (file)
@@ -48,7 +48,7 @@ class Twig_Extension_Core extends Twig_Extension
             // formatting filters
             'date'    => new Twig_Filter_Function('twig_date_format_filter'),
             'format'  => new Twig_Filter_Function('sprintf'),
-            'replace' => new Twig_Filter_Function('twig_strtr'),
+            'replace' => new Twig_Filter_Function('strtr'),
 
             // encoding
             'url_encode'       => new Twig_Filter_Function('twig_urlencode_filter'),
@@ -459,23 +459,6 @@ function twig_in_filter($value, $compare)
 }
 
 /**
- * Replaces placeholders in a string.
- *
- * <pre>
- *  {{ "I like %this% and %that%."|replace({'%this%': foo, '%that%': "bar"}) }}
- * </pre>
- *
- * @param string $pattern      A string
- * @param string $replacements The values for the placeholders
- *
- * @return string The string where the placeholders have been replaced
- */
-function twig_strtr($pattern, $replacements)
-{
-    return str_replace(array_keys($replacements), array_values($replacements), $pattern);
-}
-
-/**
  * Escapes a string.
  *
  * @param Twig_Environment $env        A Twig_Environment instance
diff --git a/test/Twig/Tests/Fixtures/filters/replace.test b/test/Twig/Tests/Fixtures/filters/replace.test
new file mode 100644 (file)
index 0000000..4021660
--- /dev/null
@@ -0,0 +1,8 @@
+--TEST--
+"replace" filter
+--TEMPLATE--
+{{ "I like %this% and %that%."|replace({'%this%': "foo", '%that%': "bar"}) }}
+--DATA--
+return array()
+--EXPECT--
+I like foo and bar.