[Form] Added ArrayAccess to DefaultRenderer

This commit is contained in:
Bernhard Schussek 2011-03-02 22:56:20 +01:00
parent 0f8cd43ac4
commit bfbc1121ce
2 changed files with 30 additions and 1 deletions

View File

@ -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');
}
}

View File

@ -13,6 +13,8 @@ namespace Symfony\Component\Form\Renderer;
interface RendererInterface
{
function setChildren(array $renderers);
function setVar($name, $value);
function getVar($name);