/** * {@inheritdoc} */ public function createView(FormViewInterface $parent = null) { if (null === $parent && $this->parent) { $parent = $this->parent->createView(); } $view = new FormView($this->config->getName()); $view->setParent($parent); $types = (array) $this->config->getTypes(); $options = $this->config->getOptions(); foreach ($types as $type) { $type->buildView($view, $this, $options); foreach ($type->getExtensions() as $typeExtension) { $typeExtension->buildView($view, $this, $options); } } foreach ($this->children as $child) { $view->add($child->createView($view)); } foreach ($types as $type) { $type->finishView($view, $this, $options); foreach ($type->getExtensions() as $typeExtension) { $typeExtension->finishView($view, $this, $options); } } return $view; }
/** * {@inheritdoc} */ public function setParent(FormInterface $parent = null) { if ($this->submitted) { throw new AlreadySubmittedException('You cannot set the parent of a submitted form'); } if (null !== $parent && '' === $this->config->getName()) { throw new LogicException('A form with an empty name cannot have a parent form.'); } $this->parent = $parent; return $this; }
/** * Sets the parent form. * * @param FormInterface $parent The parent form * * @return Form The current form */ public function setParent(FormInterface $parent = null) { if ($this->bound) { throw new AlreadyBoundException('You cannot set the parent of a bound form'); } if ('' === $this->config->getName()) { throw new FormException('A form with an empty name cannot have a parent form.'); } $this->parent = $parent; return $this; }
/** * Returns the name by which the button is identified in forms. * * @return string The name of the button. */ public function getName() { return $this->config->getName(); }
/** * Creates an unmodifiable copy of a given configuration. * * @param FormConfigInterface $config The configuration to copy. */ public function __construct(FormConfigInterface $config) { $dispatcher = $config->getEventDispatcher(); if (!$dispatcher instanceof UnmodifiableEventDispatcher) { $dispatcher = new UnmodifiableEventDispatcher($dispatcher); } $this->dispatcher = $dispatcher; $this->name = $config->getName(); $this->propertyPath = $config->getPropertyPath(); $this->mapped = $config->getMapped(); $this->byReference = $config->getByReference(); $this->virtual = $config->getVirtual(); $this->compound = $config->getCompound(); $this->types = $config->getTypes(); $this->viewTransformers = $config->getViewTransformers(); $this->modelTransformers = $config->getModelTransformers(); $this->dataMapper = $config->getDataMapper(); $this->validators = $config->getValidators(); $this->required = $config->getRequired(); $this->disabled = $config->getDisabled(); $this->errorBubbling = $config->getErrorBubbling(); $this->emptyData = $config->getEmptyData(); $this->attributes = $config->getAttributes(); $this->data = $config->getData(); $this->dataClass = $config->getDataClass(); $this->options = $config->getOptions(); }