hydra-sql/vendor/symfony/form/Util/InheritDataAwareIterator.php

48 lines
1.1 KiB
PHP

<?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\Util;
/**
* Iterator that traverses an array of forms.
*
* Contrary to \ArrayIterator, this iterator recognizes changes in the original
* array during iteration.
*
* You can wrap the iterator into a {@link \RecursiveIteratorIterator} in order to
* enter any child form that inherits its parent's data and iterate the children
* of that form as well.
*
* @author Bernhard Schussek <bschussek@gmail.com>
*/
class InheritDataAwareIterator extends \IteratorIterator implements \RecursiveIterator
{
/**
* {@inheritdoc}
*
* @return static
*/
#[\ReturnTypeWillChange]
public function getChildren()
{
return new static($this->current());
}
/**
* @return bool
*/
#[\ReturnTypeWillChange]
public function hasChildren()
{
return (bool) $this->current()->getConfig()->getInheritData();
}
}