/** * @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]; }
/** * @param string $blockTypeName * @param LayoutRegistryInterface $registry * * @return DebugOptionsResolver */ protected function getBlockTypeOptionsResolver($blockTypeName, LayoutRegistryInterface $registry) { $type = $registry->getType($blockTypeName); $parentName = $type->getParent(); $optionsResolver = $parentName ? clone $this->getBlockTypeOptionsResolver($parentName, $registry) : new DebugOptionsResolver(); $type->setDefaultOptions($optionsResolver); $registry->setDefaultOptions($blockTypeName, $optionsResolver); return $optionsResolver; }