fixed macros when using an argument named like a PHP super globa
authorFabien Potencier <fabien.potencier@gmail.com>
Sat, 11 Oct 2014 20:38:36 +0000 (22:38 +0200)
committerFabien Potencier <fabien.potencier@gmail.com>
Sat, 11 Oct 2014 20:38:36 +0000 (22:38 +0200)
CHANGELOG
lib/Twig/Node/Macro.php
test/Twig/Tests/Node/MacroTest.php

index 713598b..9d136c1 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,6 @@
 * 1.16.2 (2014-XX-XX)
 
+ * fixed macros when using an argument named like a PHP super global (like GET or POST)
  * fixed date_modify when working with DateTimeImmutable
  * optimized for loops
  * fixed multi-byte characters handling in the split filter
index 47c2915..ab7e8d2 100644 (file)
@@ -37,7 +37,7 @@ class Twig_Node_Macro extends Twig_Node
         $pos = 0;
         foreach ($this->getNode('arguments') as $name => $default) {
             $compiler
-                ->raw('$_'.$name.' = ')
+                ->raw('$__'.$name.'__ = ')
                 ->subcompile($default)
             ;
 
@@ -64,7 +64,7 @@ class Twig_Node_Macro extends Twig_Node
                 $compiler
                     ->write('')
                     ->string($name)
-                    ->raw(' => $_'.$name)
+                    ->raw(' => $__'.$name.'__')
                     ->raw(",\n")
                 ;
             }
index 4d2f641..2a77ac7 100644 (file)
@@ -46,11 +46,11 @@ class Twig_Tests_Node_MacroTest extends Twig_Test_NodeTestCase
         return array(
             array($node, <<<EOF
 // line 1
-public function getfoo(\$_foo = null, \$_bar = "Foo")
+public function getfoo(\$__foo__ = null, \$__bar__ = "Foo")
 {
     \$context = \$this->env->mergeGlobals(array(
-        "foo" => \$_foo,
-        "bar" => \$_bar,
+        "foo" => \$__foo__,
+        "bar" => \$__bar__,
     ));
 
     \$blocks = array();