/** * {@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; }
/** * 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(); }