瀏覽代碼

[Form] Added ArrayAccess interface to DefaultRenderer

Bernhard Schussek 14 年之前
父節點
當前提交
adbf2cb2bf
共有 1 個文件被更改,包括 26 次插入1 次删除
  1. 26 1
      src/Symfony/Component/Form/Renderer/DefaultRenderer.php

+ 26 - 1
src/Symfony/Component/Form/Renderer/DefaultRenderer.php

@@ -15,7 +15,7 @@ use Symfony\Component\Form\FieldInterface;
 use Symfony\Component\Form\Renderer\Theme\ThemeInterface;
 use Symfony\Component\Form\Renderer\Plugin\PluginInterface;
 
-class DefaultRenderer implements RendererInterface
+class DefaultRenderer implements RendererInterface, \ArrayAccess
 {
     private $field;
 
@@ -77,6 +77,11 @@ class DefaultRenderer implements RendererInterface
         }
     }
 
+    public function hasVar($name)
+    {
+        return array_key_exists($name, $this->vars);
+    }
+
     public function getVar($name)
     {
         $this->initialize();
@@ -129,4 +134,24 @@ class DefaultRenderer implements RendererInterface
             $vars
         ));
     }
+
+    public function offsetGet($name)
+    {
+        return $this->getVar($name);
+    }
+
+    public function offsetExists($name)
+    {
+        return $this->hasVar($name);
+    }
+
+    public function offsetSet($name, $value)
+    {
+        throw new \BadMethodCallException('Not supported');
+    }
+
+    public function offsetUnset($name)
+    {
+        throw new \BadMethodCallException('Not supported');
+    }
 }