/** * @param string|BlockTypeInterface $blockType * * @return OptionsResolverInterface */ protected function getOptionResolver($blockType) { if ($blockType instanceof BlockTypeInterface) { $name = $blockType->getName(); $type = $blockType; } else { $name = $blockType; $type = null; } if (!isset($this->resolvers[$name])) { if (!$type) { $type = $this->registry->getType($name); } $parentName = $type->getParent(); $optionsResolver = $parentName ? clone $this->getOptionResolver($parentName) : new OptionsResolver(); $type->setDefaultOptions($optionsResolver); $this->registry->setDefaultOptions($name, $optionsResolver); $this->resolvers[$name] = $optionsResolver; } return $this->resolvers[$name]; }
/** * {@inheritdoc} */ public function addType(BlockTypeInterface $type) { $this->types[$type->getName()] = $type; return $this; }