merged branch bschussek/revert_circ_ref (PR #4807)

Commits
-------

eba7dfe Revert "[Form] added a circular reference safeguard for form type"

Discussion
----------

Revert "[Form] added a circular reference safeguard for form type"

This reverts commit ea93e4cafa.

Conflicts:

	src/Symfony/Component/Form/FormBuilder.php
	src/Symfony/Component/Form/FormFactory.php
This commit is contained in:
Fabien Potencier 2012-07-09 18:45:58 +02:00
commit 22fea110a5
3 changed files with 0 additions and 36 deletions

View File

@ -1,22 +0,0 @@
<?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\Exception;
use Symfony\Component\Form\FormTypeInterface;
class CircularReferenceException extends FormException
{
public function __construct(FormTypeInterface $type, $code = 0, $previous = null)
{
parent::__construct(sprintf('Circular reference detected in the "%s" type (defined in class "%s").', $type->getName(), get_class($type)), $code, $previous);
}
}

View File

@ -13,7 +13,6 @@ namespace Symfony\Component\Form;
use Symfony\Component\Form\Exception\FormException; use Symfony\Component\Form\Exception\FormException;
use Symfony\Component\Form\Exception\UnexpectedTypeException; use Symfony\Component\Form\Exception\UnexpectedTypeException;
use Symfony\Component\Form\Exception\CircularReferenceException;
use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\EventDispatcher\EventDispatcherInterface;
/** /**
@ -44,8 +43,6 @@ class FormBuilder extends FormConfig implements \IteratorAggregate, FormBuilderI
*/ */
private $unresolvedChildren = array(); private $unresolvedChildren = array();
private $currentLoadingType;
/** /**
* The parent of this builder * The parent of this builder
* @var FormBuilder * @var FormBuilder
@ -98,10 +95,6 @@ class FormBuilder extends FormConfig implements \IteratorAggregate, FormBuilderI
throw new UnexpectedTypeException($type, 'string or Symfony\Component\Form\FormTypeInterface'); throw new UnexpectedTypeException($type, 'string or Symfony\Component\Form\FormTypeInterface');
} }
if ($this->currentLoadingType && ($type instanceof FormTypeInterface ? $type->getName() : $type) == $this->currentLoadingType) {
throw new CircularReferenceException(is_string($type) ? $this->getFormFactory()->getType($type) : $type);
}
// Add to "children" to maintain order // Add to "children" to maintain order
$this->children[$child] = null; $this->children[$child] = null;
$this->unresolvedChildren[$child] = array( $this->unresolvedChildren[$child] = array(
@ -211,11 +204,6 @@ class FormBuilder extends FormConfig implements \IteratorAggregate, FormBuilderI
return $form; return $form;
} }
public function setCurrentLoadingType($type)
{
$this->currentLoadingType = $type;
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */

View File

@ -217,7 +217,6 @@ class FormFactory implements FormFactoryInterface
} }
$builder->setTypes($types); $builder->setTypes($types);
$builder->setCurrentLoadingType($type->getName());
$builder->setParent($parent); $builder->setParent($parent);
foreach ($types as $type) { foreach ($types as $type) {
@ -227,7 +226,6 @@ class FormFactory implements FormFactoryInterface
$typeExtension->buildForm($builder, $options); $typeExtension->buildForm($builder, $options);
} }
} }
$builder->setCurrentLoadingType(null);
return $builder; return $builder;
} }