diff --git a/src/Symfony/Component/Form/Renderer/DefaultRenderer.php b/src/Symfony/Component/Form/Renderer/DefaultRenderer.php index bbb71fd1a8..1654e90f96 100644 --- a/src/Symfony/Component/Form/Renderer/DefaultRenderer.php +++ b/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; @@ -31,6 +31,8 @@ class DefaultRenderer implements RendererInterface private $rendered = false; + private $children = array(); + public function __construct(ThemeInterface $theme, $template) { $this->theme = $theme; @@ -65,6 +67,11 @@ class DefaultRenderer implements RendererInterface } } + public function setChildren(array $renderers) + { + $this->children = $renderers; + } + public function setTheme(ThemeInterface $theme) { $this->theme = $theme; @@ -159,4 +166,24 @@ class DefaultRenderer implements RendererInterface $vars )); } + + public function offsetGet($name) + { + return $this->children[$name]; + } + + public function offsetExists($name) + { + return isset($this->children[$name]); + } + + public function offsetSet($name, $value) + { + throw new \BadMethodCallException('Not supported'); + } + + public function offsetUnset($name) + { + throw new \BadMethodCallException('Not supported'); + } } \ No newline at end of file diff --git a/src/Symfony/Component/Form/Renderer/RendererInterface.php b/src/Symfony/Component/Form/Renderer/RendererInterface.php index ed7c620615..108caf2119 100644 --- a/src/Symfony/Component/Form/Renderer/RendererInterface.php +++ b/src/Symfony/Component/Form/Renderer/RendererInterface.php @@ -13,6 +13,8 @@ namespace Symfony\Component\Form\Renderer; interface RendererInterface { + function setChildren(array $renderers); + function setVar($name, $value); function getVar($name);