/usr/share/php/Symfony/Component/Form/FormView.php is in php-symfony-form 2.7.10-0ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | <?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Form;
use Symfony\Component\Form\Exception\BadMethodCallException;
/**
* @author Bernhard Schussek <bschussek@gmail.com>
*/
class FormView implements \ArrayAccess, \IteratorAggregate, \Countable
{
/**
* The variables assigned to this view.
*
* @var array
*/
public $vars = array(
'value' => null,
'attr' => array(),
);
/**
* The parent view.
*
* @var FormView
*/
public $parent;
/**
* The child views.
*
* @var FormView[]
*/
public $children = array();
/**
* Is the form attached to this renderer rendered?
*
* Rendering happens when either the widget or the row method was called.
* Row implicitly includes widget, however certain rendering mechanisms
* have to skip widget rendering when a row is rendered.
*
* @var bool
*/
private $rendered = false;
public function __construct(FormView $parent = null)
{
$this->parent = $parent;
}
/**
* Returns whether the view was already rendered.
*
* @return bool Whether this view's widget is rendered.
*/
public function isRendered()
{
$hasChildren = 0 < count($this->children);
if (true === $this->rendered || !$hasChildren) {
return $this->rendered;
}
if ($hasChildren) {
foreach ($this->children as $child) {
if (!$child->isRendered()) {
return false;
}
}
return $this->rendered = true;
}
return false;
}
/**
* Marks the view as rendered.
*
* @return FormView The view object.
*/
public function setRendered()
{
$this->rendered = true;
return $this;
}
/**
* Returns a child by name (implements \ArrayAccess).
*
* @param string $name The child name
*
* @return FormView The child view
*/
public function offsetGet($name)
{
return $this->children[$name];
}
/**
* Returns whether the given child exists (implements \ArrayAccess).
*
* @param string $name The child name
*
* @return bool Whether the child view exists
*/
public function offsetExists($name)
{
return isset($this->children[$name]);
}
/**
* Implements \ArrayAccess.
*
* @throws BadMethodCallException always as setting a child by name is not allowed
*/
public function offsetSet($name, $value)
{
throw new BadMethodCallException('Not supported');
}
/**
* Removes a child (implements \ArrayAccess).
*
* @param string $name The child name
*/
public function offsetUnset($name)
{
unset($this->children[$name]);
}
/**
* Returns an iterator to iterate over children (implements \IteratorAggregate).
*
* @return \ArrayIterator The iterator
*/
public function getIterator()
{
return new \ArrayIterator($this->children);
}
/**
* Implements \Countable.
*
* @return int The number of children views
*/
public function count()
{
return count($this->children);
}
}
|