fixed a regression introduced by aa6b8358161e4ef35299be06a5ff61bfcba46f6a
authorFabien Potencier <fabien.potencier@gmail.com>
Wed, 16 May 2012 14:18:48 +0000 (16:18 +0200)
committerFabien Potencier <fabien.potencier@gmail.com>
Wed, 16 May 2012 14:19:00 +0000 (16:19 +0200)
CHANGELOG
composer.json
ext/twig/php_twig.h
lib/Twig/Environment.php
lib/Twig/Template.php
test/Twig/Tests/Fixtures/regression/simple_xml_element.test [new file with mode: 0644]

index 659cb71..b1a8ca0 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,6 @@
-* 1.9.0 (2012-XX-XX)
+* 1.8.1 (2012-XX-XX)
 
- * n/a
+ * fixed a regression when dealing with SimpleXMLElement instances in templates
 
 * 1.8.0 (2012-05-08)
 
index d3d435b..9ca80fc 100644 (file)
@@ -25,7 +25,7 @@
     },
     "extra": {
         "branch-alias": {
-            "dev-master": "1.9-dev"
+            "dev-master": "1.8-dev"
         }
     }
 }
index ee6e9f2..ce2f65c 100644 (file)
@@ -15,7 +15,7 @@
 #ifndef PHP_TWIG_H
 #define PHP_TWIG_H
 
-#define PHP_TWIG_VERSION "1.9.0-DEV"
+#define PHP_TWIG_VERSION "1.8.1-DEV"
 
 #include "php.h"
 
index 1bdc64a..aaa3ece 100644 (file)
@@ -17,7 +17,7 @@
  */
 class Twig_Environment
 {
-    const VERSION = '1.9.0-DEV';
+    const VERSION = '1.8.1-DEV';
 
     protected $charset;
     protected $loader;
index 6067ec0..1693596 100644 (file)
@@ -326,7 +326,7 @@ abstract class Twig_Template implements Twig_TemplateInterface
      */
     protected function getAttribute($object, $item, array $arguments = array(), $type = Twig_TemplateInterface::ANY_CALL, $isDefinedTest = false, $ignoreStrictCheck = false)
     {
-        $item = (string) $item;
+        $item = is_numeric($item) ? (int) $item : (string) $item;
 
         // array
         if (Twig_TemplateInterface::METHOD_CALL !== $type) {
diff --git a/test/Twig/Tests/Fixtures/regression/simple_xml_element.test b/test/Twig/Tests/Fixtures/regression/simple_xml_element.test
new file mode 100644 (file)
index 0000000..6cb036b
--- /dev/null
@@ -0,0 +1,15 @@
+--TEST--
+Twig is able to deal with SimpleXMLElement instances as variables
+--TEMPLATE--
+Hello '{{ images.image.0.group }}'!
+{{ images.children().count() }}
+{% for image in images %}
+    - {{ image.group }}
+{% endfor %}
+--DATA--
+return array('images' => new SimpleXMLElement('<images><image><group>foo</group></image><image><group>bar</group></image></images>'))
+--EXPECT--
+Hello 'foo'!
+2
+    - foo
+    - bar