/** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { $resolver->setRequired(array('relative_path')); $resolver->setRequired(array('imagine_filter')); $resolver->setDefaults(array('class' => '', 'padding' => '', 'name' => '', 'orderable' => false, 'searchable' => false, 'title' => '', 'type' => '', 'visible' => true, 'width' => '', 'search_type' => 'like', 'filter_type' => 'text', 'filter_options' => array(), 'filter_property' => '', 'filter_search_column' => '', 'holder_url' => '', 'holder_width' => '50', 'holder_height' => '50', 'enlarge' => false)); $resolver->setAllowedTypes('class', 'string'); $resolver->setAllowedTypes('padding', 'string'); $resolver->setAllowedTypes('name', 'string'); $resolver->setAllowedTypes('orderable', 'bool'); $resolver->setAllowedTypes('searchable', 'bool'); $resolver->setAllowedTypes('title', 'string'); $resolver->setAllowedTypes('type', 'string'); $resolver->setAllowedTypes('visible', 'bool'); $resolver->setAllowedTypes('width', 'string'); $resolver->setAllowedTypes('search_type', 'string'); $resolver->setAllowedTypes('filter_type', 'string'); $resolver->setAllowedTypes('filter_options', 'array'); $resolver->setAllowedTypes('filter_property', 'string'); $resolver->setAllowedTypes('filter_search_column', 'string'); $resolver->setAllowedTypes('imagine_filter', 'string'); $resolver->setAllowedTypes('relative_path', 'string'); $resolver->setAllowedTypes('holder_url', 'string'); $resolver->setAllowedTypes('holder_width', 'string'); $resolver->setAllowedTypes('holder_height', 'string'); $resolver->setAllowedTypes('enlarge', 'bool'); $resolver->setAllowedValues('search_type', array('like', 'notLike', 'eq', 'neq', 'lt', 'lte', 'gt', 'gte', 'in', 'notIn', 'isNull', 'isNotNull')); $resolver->setAllowedValues('filter_type', array('text', 'select')); return $this; }
/** * @param OptionsResolver $resolver */ protected function configureOptions(OptionsResolver $resolver) { $resolver->setRequired(['allowed', 'default_order']); $resolver->setDefaults(['allowed' => true, 'default_order' => self::SORT_DIR_DESC]); $resolver->setAllowedValues('allowed', [true, false]); $resolver->setAllowedValues('default_order', [self::SORT_DIR_DESC, self::SORT_DIR_ASC]); }
/** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array_merge($this->getDefaultWidgetOptions(), ['widget' => 'single_text', 'format' => null, 'date_format' => \IntlDateFormatter::MEDIUM, 'time_format' => \IntlDateFormatter::SHORT, 'widget_addon_append' => ['icon' => 'calendar']])); $resolver->setAllowedTypes('format', ['null', 'string']); $resolver->setAllowedValues('date_format', [\IntlDateFormatter::FULL, \IntlDateFormatter::LONG, \IntlDateFormatter::MEDIUM, \IntlDateFormatter::SHORT]); $resolver->setAllowedValues('time_format', [\IntlDateFormatter::NONE, \IntlDateFormatter::FULL, \IntlDateFormatter::LONG, \IntlDateFormatter::MEDIUM, \IntlDateFormatter::SHORT]); }
/** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array('color' => 'green', 'switch_type' => 1)); $resolver->setRequired(array('switch_type')); $resolver->setAllowedValues('color', array('green', 'red', 'purple', 'orange', 'dark')); $resolver->setAllowedValues('switch_type', array(1, 2, 3, 4, 5, 6, 7)); }
public function configureOptions(OptionsResolver $resolver) { $resolver->setDefault('widget', 'compact'); $resolver->setAllowedValues('widget', ['browser', 'compact']); $resolver->setDefault('root_node', '/'); $resolver->setAllowedValues('root_node', function ($value) { return '/' === $value[0]; }); $resolver->setDefault('repository_name', 'default'); }
/** * @inheritdoc */ public function setOptions(OptionsResolver $resolver) { $resolver->setRequired(['forced', 'feed', 'date_locale', 'number_locale', 'default_values']); $resolver->setAllowedValues('date_locale', ['en', 'nl']); $resolver->setAllowedValues('number_locale', ['en', 'nl']); $resolver->setAllowedTypes('forced', 'bool'); $resolver->setAllowedTypes('feed', Feed::class); $resolver->setAllowedTypes('default_values', 'array'); $resolver->setDefaults(['forced' => false, 'date_locale' => 'en', 'number_locale' => 'en', 'default_values' => []]); }
/** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array('widget_form_control_class' => 'form-control', 'widget_form_group' => true, 'widget_addon_prepend' => null, 'widget_addon_append' => null, 'widget_btn_prepend' => null, 'widget_btn_append' => null, 'widget_prefix' => null, 'widget_suffix' => null, 'widget_type' => '', 'widget_items_attr' => array(), 'widget_form_group_attr' => array('class' => 'form-group'), 'widget_checkbox_label' => $this->options['checkbox_label'])); if (version_compare(Kernel::VERSION, '2.6', '>=')) { $resolver->setAllowedValues('widget_type', array('inline', 'inline-btn', '')); $resolver->setAllowedValues('widget_checkbox_label', array('label', 'widget', 'both')); } else { $resolver->setAllowedValues(array('widget_type' => array('inline', 'inline-btn', ''), 'widget_checkbox_label' => array('label', 'widget', 'both'))); } }
/** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(['input' => 'datetime', 'model_timezone' => null, 'view_timezone' => null, 'date_format' => \IntlDateFormatter::MEDIUM, 'time_format' => \IntlDateFormatter::MEDIUM, 'calendar' => \IntlDateFormatter::GREGORIAN, 'format' => null]); $resolver->setAllowedValues('date_format', self::$acceptedFormats); $resolver->setAllowedValues('time_format', self::$acceptedFormats); $resolver->setAllowedTypes('model_timezone', ['null', 'string']); $resolver->setAllowedTypes('view_timezone', ['null', 'string']); $resolver->setAllowedTypes('format', ['null', 'string']); $resolver->setAllowedTypes('calendar', ['int', 'IntlCalendar']); $resolver->setAllowedValues('input', ['string', 'timestamp', 'datetime']); }
/** * @param OptionsResolver $resolver */ protected function configureOptions(OptionsResolver $resolver) { $resolver->setRequired(['visible', 'width', 'align', 'no_title']); $resolver->setDefaults(['visible' => true, 'width' => self::WIDTH_AUTO, 'align' => self::ALIGN_LEFT, 'no_title' => false]); $resolver->setAllowedValues('visible', [true, false]); $resolver->setAllowedValues('align', [self::ALIGN_LEFT, self::ALIGN_CENTER, self::ALIGN_RIGHT]); $resolver->setAllowedValues('no_title', [true, false]); $resolver->setAllowedTypes('visible', 'bool'); $resolver->setAllowedTypes('width', ['int', 'string']); $resolver->setAllowedTypes('align', 'string'); $resolver->setAllowedTypes('no_title', 'bool'); }
public function __construct(ConnectionInterface $connection, $dn, $query, array $options = array()) { $resolver = new OptionsResolver(); $resolver->setDefaults(array('filter' => '*', 'maxItems' => 0, 'sizeLimit' => 0, 'timeout' => 0, 'deref' => static::DEREF_NEVER, 'attrsOnly' => 0, 'scope' => static::SCOPE_SUB)); $resolver->setAllowedValues('deref', array(static::DEREF_ALWAYS, static::DEREF_NEVER, static::DEREF_FINDING, static::DEREF_SEARCHING)); $resolver->setAllowedValues('scope', array(static::SCOPE_BASE, static::SCOPE_ONE, static::SCOPE_SUB)); $resolver->setNormalizer('filter', function (Options $options, $value) { return is_array($value) ? $value : array($value); }); $this->connection = $connection; $this->dn = $dn; $this->query = $query; $this->options = $resolver->resolve($options); }
protected function configureOptions(OptionsResolver $resolver) { // Set default options. $resolver->setDefaults(array('clean-strategy' => self::CLEAN_STRATEGY_STANDARD, 'element-blacklist' => '', 'indent-spaces' => 4, 'output' => self::OUTPUT_COMPACT, 'type-blacklist' => Token::CDATA . ',' . Token::COMMENT)); // Validation // clean-strategy $resolver->setAllowedTypes('clean-strategy', 'string'); $resolver->setAllowedValues('clean-strategy', array(self::CLEAN_STRATEGY_NONE, self::CLEAN_STRATEGY_LENIENT, self::CLEAN_STRATEGY_STANDARD, self::CLEAN_STRATEGY_AGGRESSIVE)); // element-blacklist $resolver->setAllowedTypes('element-blacklist', 'string'); $resolver->setNormalizer('element-blacklist', function (Options $options, $value) { $valueArray = explode(',', $value); $formattedValueArray = array(); foreach ($valueArray as $data) { $formattedValueArray[] = trim(strtolower($data)); } return implode(',', $formattedValueArray); }); // indent-spaces $resolver->setAllowedTypes('indent-spaces', 'int'); $resolver->setAllowedValues('indent-spaces', function ($value) { return $value >= 0; }); // output $resolver->setAllowedTypes('output', 'string'); $resolver->setAllowedValues('output', array(self::OUTPUT_COMPACT, self::OUTPUT_PRETTY)); // type-blacklist $resolver->setAllowedTypes('type-blacklist', 'string'); $resolver->setAllowedValues('type-blacklist', function ($value) { if ($value == '') { return true; } $acceptedValues = array(Token::CDATA, Token::COMMENT, Token::DOCTYPE, Token::ELEMENT, Token::PHP, Token::TEXT); $valueArray = explode(',', $value); foreach ($valueArray as $val) { if (array_search(trim(strtolower($val)), $acceptedValues) === false) { return false; } } return true; }); $resolver->setNormalizer('type-blacklist', function (Options $options, $value) { $valueArray = explode(',', $value); $formattedValueArray = array(); foreach ($valueArray as $data) { $formattedValueArray[] = trim(strtolower($data)); } return implode(',', $formattedValueArray); }); }
/** * @param array $options */ public function setOptions($options = array()) { $resolver = new OptionsResolver(); $resolver->setDefaults(array()); $resolver->setRequired('slider_id'); $resolver->setAllowedTypes('slider_id', 'string'); $resolver->setRequired('start'); $resolver->setAllowedTypes('start', 'array'); $resolver->setRequired('range_min'); $resolver->setAllowedTypes('range_min', 'numeric'); $resolver->setRequired('range_max'); $resolver->setAllowedTypes('range_max', 'numeric'); $resolver->setDefined('range_steps'); $resolver->setAllowedTypes('range_steps', 'array'); $resolver->setDefined('step'); $resolver->setAllowedTypes('step', 'numeric'); $resolver->setDefined('connect'); $resolver->setAllowedTypes('connect', 'string'); $resolver->setAllowedValues('connect', array('lower', 'upper', 'true', 'false')); $resolver->setDefault('connect', 'false'); $resolver->setDefined('margin'); $resolver->setAllowedTypes('margin', 'numeric'); $resolver->setDefined('limit'); $resolver->setAllowedTypes('margin', 'numeric'); $resolver->setDefined('orientation'); $resolver->setAllowedTypes('orientation', 'string'); $resolver->setAllowedValues('orientation', array('vertical', 'horizontal')); $resolver->setDefault('orientation', 'horizontal'); $resolver->setDefined('slider_dimension'); $resolver->setAllowedTypes('slider_dimension', 'array'); $resolver->setDefined('direction'); $resolver->setAllowedTypes('direction', 'string'); $resolver->setAllowedValues('direction', array('ltr', 'rtl')); $resolver->setDefault('direction', 'ltr'); $resolver->setDefined('animate'); $resolver->setAllowedTypes('animate', 'boolean'); $resolver->setDefault('animate', true); $resolver->setDefined('animation_duration'); $resolver->setAllowedTypes('animation_duration', 'numeric'); $resolver->setDefined('tooltips'); $resolver->setAllowedTypes('tooltips', 'array'); //events $resolver->setDefined('update_event'); $resolver->setDefined('change_event'); $resolver->setDefined('set_event'); $resolver->setDefined('slide_event'); $resolver->setDefined('start_event'); $resolver->setDefined('end_event'); $this->options = $resolver->resolve($options); }
public function __construct() { $this->allowedTypes = array_merge(array('driver' => array('string'), 'options' => array('array', 'null'), 'attributes' => array('array')), $this->allowedTypes); $this->allowedValues = array_merge(array('driver' => array($this->driver)), $this->allowedValues); $this->defaults = array_merge(array('driver' => $this->driver, 'options' => array(), 'attributes' => array()), $this->defaults); $this->resolver = new OptionsResolver(); $this->resolver->setRequired($this->required)->setDefaults($this->defaults); foreach ($this->allowedValues as $option => $value) { $this->resolver->setAllowedValues($option, $value); } foreach ($this->allowedTypes as $option => $value) { $this->resolver->setAllowedTypes($option, $value); } }
/** * * @param OptionsResolver $resolver */ public function configureOptions(OptionsResolver $resolver) { $resolver->setRequired(array('class', 'type')); $resolver->setDefined(array('create_options', 'modal_size')); $resolver->setDefaults(array('include_button' => true, 'include_form' => true, 'error_bubbling' => false, 'entity_options' => array())); $resolver->setAllowedValues('modal_size', array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)); }
public function configureOptions(OptionsResolver $resolver) { // Les valeurs par défault $resolver->setDefaults(array("host" => "smtp.example.org", "username" => "user", "password" => 'pa$$word', "port" => "25", 'encryption' => null)); // Les options obligatoire $resolver->setRequired(array('host', 'username', 'password')); // Les type de valeur autorisé pour le port $resolver->setAllowedTypes("port", array("int")); // Les valeur autorisé pour l'username $resolver->setAllowedValues("username", array("john", "doe", "johndoe")); // On normalise le host en fornction de l'encryption ssl ou non $resolver->setNormalizer("host", function (Options $options, $value) { if (!in_array(substr($value, 0, 7), array("http://", "https://"))) { if ("ssl" === $options["encryption"]) { $value = "https://" . $value; } else { $value = "http://" . $value; } return $value; } }); // On change la valeur par défault du port en fonction de l'encryption ssl ou non $resolver->setDefault("port", function (Options $options) { if ("ssl" === $options["encryption"]) { return 465; } return 25; }); }
/** * Constructor. * * @param array|null $options */ public function __construct(array $options = array()) { $resolver = new OptionsResolver(); $resolver->setRequired(['type', 'match']); $resolver->setDefault('type', function (Options $options, $value) { if (null === $value) { return; } }); $resolver->setDefault('match', function (Options $options, $value) { if (null === $value) { return; } }); $resolver->setAllowedValues('type', function ($value) { if (in_array($value, ['json', 'xml', 'html'])) { return true; } if (null == $value) { return true; } }); $resolver->setAllowedTypes('type', ['string', 'null']); $options = $resolver->resolve($options); $this->type = $options['type']; $this->match = $options['match']; }
public function testResolveSucceedsIfOptionRequiredAndValueAllowed() { $this->resolver->setRequired(array('one', 'two')); $this->resolver->setAllowedValues(array('two' => array('2'))); $options = array('one' => '1', 'two' => '2'); $this->assertEquals($options, $this->resolver->resolve($options)); }
/** * @param ProductInterface $product * @param array $updates * * @return bool */ protected function update(ProductInterface $product, array $updates) { $resolver = new OptionsResolver(); $resolver->setRequired(['type']); $resolver->setAllowedValues(['type' => ['set_data', 'copy_data', 'add_data', 'remove_data']]); $resolver->setOptional(['field', 'data', 'locale', 'scope', 'from_field', 'to_field', 'from_locale', 'to_locale', 'from_scope', 'to_scope']); $resolver->setDefaults(['locale' => null, 'scope' => null, 'from_locale' => null, 'to_locale' => null, 'from_scope' => null, 'to_scope' => null]); foreach ($updates as $update) { $update = $resolver->resolve($update); switch ($update['type']) { case 'set_data': $this->applySetData($product, $update); break; case 'copy_data': $this->applyCopyData($product, $update); break; case 'add_data': $this->applyAddData($product, $update); break; case 'remove_data': $this->applyRemoveData($product, $update); break; } } }
/** * Resolve terminal option * * @param OptionsResolver $resolver */ public function setShopOrderIdResolver(OptionsResolver $resolver) { $resolver->setAllowedTypes('shop_orderid', ['string', 'int']); $resolver->setAllowedValues('shop_orderid', function ($value) { return preg_match('/^[a-zA-Z0-9 ]{1,100}$/', $value); }); }
/** * {@inheritdoc} * * - **format** (_boolean_) Format of the resulting archive: tar or zip * - **prefix** (_boolean_) Prepend prefix/ to each filename in the archive */ public function setDefaultOptions(OptionsResolver $resolver) { $resolver->setDefaults(array('format' => null, 'prefix' => null)); $resolver->setAllowedTypes('format', array('null', 'string')); $resolver->setAllowedTypes('prefix', array('null', 'string')); $resolver->setAllowedValues('format', array('tar', 'zip')); }
protected function configureOptions(OptionsResolver $resolver) { $resolver->setRequired("type"); $resolver->setRequired("name"); $resolver->setAllowedValues('type', ['url', 'image', 'text', 'page_select', 'product_category_select', 'product_select', 'collection_select']); $resolver->setDefaults(array('type' => 'text', 'options' => 'options')); }
/** * Resolve amount option * * @param OptionsResolver $resolver */ protected function setCurrencyResolver(OptionsResolver $resolver) { $resolver->setAllowedTypes('currency', ['string', 'int']); $resolver->setAllowedValues('currency', function ($value) { return CurrencyTypes::currencyCodeExists($value) || CurrencyTypes::currencyNumberExists($value); }); }
public function getModel($make, $model, array $options = []) { $resolver = new OptionsResolver(); $resolver->setDefaults(['year' => 1990, 'view' => 'basic']); $resolver->setDefined('state'); $resolver->setRequired(['state', 'view']); $resolver->setAllowedTypes('year', 'integer'); $resolver->setAllowedValues('state', ['new', 'used']); $resolver->setDefault('state', function (Options $options, $previousValue) { if ($options['year'] >= 2015) { return 'new'; } return $previousValue; }); // $resolver->isDefined('state'); $options = $resolver->resolve($options); $client = new GuzzleHttp\Client(); $queryParams = array_merge($options, ['fmt' => 'json', 'api_key' => $this->apiKey]); $query = GuzzleHttp\Psr7\build_query($queryParams); $request = new GuzzleHttp\Psr7\Request('GET', $this->apiEndpoint . $make . '/' . $model . '?' . $query); /** @var ResponseInterface $response */ $response = $client->send($request); if ($this->dispatcher) { $this->dispatcher->dispatch(ApiCallEvent::EVENT_NAME, new GenericEvent($this, ['make' => $make, 'model' => $model, 'options' => $options])); } return $this->delegatingSerializer->deserialize($response->getBody(), 'json', ['type' => 'array']); }
/** * {@inheritdoc} */ public function initOptions() { $this->getOptionsResolver()->setDefaults(array('actions' => array())); $this->getOptionsResolver()->setAllowedTypes('actions', 'array'); $this->actionOptionsResolver->setDefaults(array('redirect_uri' => null, 'domain' => null, 'protocole' => 'http://', 'protocol' => 'http://')); $this->actionOptionsResolver->setRequired(array('uri_scheme')); $this->actionOptionsResolver->setAllowedTypes('redirect_uri', array('string', 'null')); $this->actionOptionsResolver->setAllowedTypes('uri_scheme', 'string'); $this->actionOptionsResolver->setAllowedValues('protocol', array('http://', 'https://')); $this->actionOptionsResolver->setDefaults(array('protocol' => function (Options $options, $value) { if (isset($options['protocole'])) { $value = $options['protocole']; } return $value; })); }
public function testClearAllowedValues() { $this->resolver->setDefault('foo', 'bar'); $this->resolver->setAllowedValues('foo', 'baz'); $this->resolver->clear(); $this->resolver->setDefault('foo', 'bar'); $this->assertSame(array('foo' => 'bar'), $this->resolver->resolve()); }
private function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array('quality' => 75, 'mode' => 'outbound')); $resolver->setRequired("size"); $resolver->setAllowedValues('mode', ['inset', 'outbound']); $resolver->setAllowedTypes('quality', ['int']); $resolver->setAllowedTypes('size', ['array']); }
protected function resolveOptions(array $options) { $optionsResolver = new OptionsResolver(); $optionsResolver->setRequired(array('exchange', 'exchange_type')); $optionsResolver->setDefaults(array('exchange_type' => 'direct')); $optionsResolver->setAllowedValues(array('exchange_type' => array('direct'))); $this->options = $optionsResolver->resolve($options); }
/** * @inheritdoc */ public function configureOptions(OptionsResolver $resolver) { $resolver->setRequired(array('reference_currency', 'currency_choices')); $resolver->setDefaults(array('reference_currency' => $this->referenceCurrencyCode, 'currency_choices' => $this->currencyCodeList)); $resolver->setAllowedTypes('reference_currency', 'string'); $resolver->setAllowedTypes('currency_choices', 'array'); $resolver->setAllowedValues('reference_currency', $this->currencyCodeList); }
/** * Configure Options. * * @param OptionsResolver $resolver * * @return $this */ private function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array('url' => '', 'type' => 'GET')); $resolver->setAllowedTypes('url', 'string'); $resolver->setAllowedTypes('type', 'string'); $resolver->setAllowedValues('type', array('GET', 'POST', 'get', 'post')); return $this; }
/** * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException */ public function testResolveFailsIfValueAllowedCallbackReturnsFalse() { $this->resolver->setRequired(array('test')); $this->resolver->setAllowedValues(array('test' => function ($value) { return false; })); $options = array('test' => true); $this->assertEquals($options, $this->resolver->resolve($options)); }