/** * @param OptionsResolverInterface $optionsResolver * @param BlockInterface $block */ protected function setDefaultSettings(OptionsResolverInterface $optionsResolver, BlockInterface $block) { // defaults for all blocks $optionsResolver->setDefaults(array('use_cache' => true, 'extra_cache_keys' => array(), 'attr' => array(), 'template' => false, 'ttl' => (int) $block->getTtl())); $optionsResolver->addAllowedTypes(array('use_cache' => array('bool'), 'extra_cache_keys' => array('array'), 'attr' => array('array'), 'ttl' => array('int'), 'template' => array('string', 'bool'))); // add type and class settings for block $class = ClassUtils::getClass($block); $settingsByType = isset($this->settingsByType[$block->getType()]) ? $this->settingsByType[$block->getType()] : array(); $settingsByClass = isset($this->settingsByClass[$class]) ? $this->settingsByClass[$class] : array(); $optionsResolver->setDefaults(array_merge($settingsByType, $settingsByClass)); }
protected function configureSettings(OptionsResolver $optionsResolver, BlockInterface $block) { // defaults for all blocks $optionsResolver->setDefaults(array('use_cache' => true, 'extra_cache_keys' => array(), 'attr' => array(), 'template' => false, 'ttl' => (int) $block->getTtl())); // TODO: Remove it when bumping requirements to SF 2.6+ if (method_exists($optionsResolver, 'setDefined')) { $optionsResolver->addAllowedTypes('use_cache', 'bool')->addAllowedTypes('extra_cache_keys', 'array')->addAllowedTypes('attr', 'array')->addAllowedTypes('ttl', 'int')->addAllowedTypes('template', array('string', 'bool')); } else { $optionsResolver->addAllowedTypes(array('use_cache' => array('bool'), 'extra_cache_keys' => array('array'), 'attr' => array('array'), 'ttl' => array('int'), 'template' => array('string', 'bool'))); } // add type and class settings for block $class = ClassUtils::getClass($block); $settingsByType = isset($this->settingsByType[$block->getType()]) ? $this->settingsByType[$block->getType()] : array(); $settingsByClass = isset($this->settingsByClass[$class]) ? $this->settingsByClass[$class] : array(); $optionsResolver->setDefaults(array_merge($settingsByType, $settingsByClass)); }