protected function configureProperties(OptionsResolver $resolver)
 {
     $resolver->setDefined('logfile')->setAllowedTypes('logfile', 'string');
     $resolver->setDefined('logfile_maxbytes');
     $this->configureByteProperty('logfile_maxbytes', $resolver);
     $resolver->setDefined('logfile_backups');
     $this->configureIntegerProperty('logfile_backups', $resolver);
     $resolver->setDefined('loglevel')->setAllowedTypes('loglevel', 'string')->setAllowedValues('loglevel', ['critical', 'error', 'warn', 'info', 'debug', 'trace', 'blather']);
     $resolver->setDefined('pidfile')->setAllowedTypes('pidfile', 'string');
     // TODO: octal vs. decimal value
     $resolver->setDefined('umask');
     $this->configureIntegerProperty('umask', $resolver);
     $resolver->setDefined('nodaemon');
     $this->configureBooleanProperty('nodaemon', $resolver);
     $resolver->setDefined('minfds');
     $this->configureIntegerProperty('minfds', $resolver);
     $resolver->setDefined('minprocs');
     $this->configureIntegerProperty('minprocs', $resolver);
     $resolver->setDefined('nocleanup');
     $this->configureBooleanProperty('nocleanup', $resolver);
     $resolver->setDefined('childlogdir')->setAllowedTypes('childlogdir', 'string');
     $resolver->setDefined('user')->setAllowedTypes('user', 'string');
     $resolver->setDefined('directory')->setAllowedTypes('directory', 'string');
     $resolver->setDefined('strip_ansi');
     $this->configureBooleanProperty('strip_ansi', $resolver);
     $this->configureEnvironmentProperty($resolver);
     $resolver->setDefined('identifier')->setAllowedTypes('identifier', 'string');
 }
 /**
  * {@inheritdoc}
  */
 protected function configureProperties(OptionsResolver $resolver)
 {
     $resolver->setDefined('supervisor.rpcinterface_factory')->setAllowedTypes('supervisor.rpcinterface_factory', 'string');
     // Note: undocumented, based on examples
     $resolver->setDefined('retries');
     $this->configureIntegerProperty('retries', $resolver);
 }
 /**
  * Set up the configurations of options
  * passed as argument into the following methods of this class :
  * - getWeekDates
  * - getWeekMeals
  */
 private function configureWeekMealOptions()
 {
     $this->weekMealResolver->setDefined(array('date_day', 'without_pork', 'enable_next_week', 'days_ofweek_off', 'dates_off'));
     $this->weekMealResolver->setAllowedTypes('date_day', \DateTimeInterface::class);
     $this->weekMealResolver->setDefaults(array('without_pork' => false, 'enable_next_week' => false, 'days_ofweek_off' => array(Day::WEEK_WEDNESDAY), 'dates_off' => array()));
     $this->weekMealResolver->setRequired(array('without_pork', 'date_day'));
 }
示例#4
0
 public function __construct(array $defaultParameters = array())
 {
     $this->parametersResolver = new SymfonyResolver();
     $this->parametersResolver->setDefaults(array_merge(array('currentPage' => 0, 'itemsPerPage' => 10), $defaultParameters))->setAllowedTypes('currentPage', 'int')->setAllowedTypes('itemsPerPage', 'int');
     $this->filtersResolver = new SymfonyResolver();
     $this->filtersResolver->setDefined(array('operator', 'value', 'sort'))->setDefaults(array('sort_priority' => 0, 'parsed' => false, 'sorted' => false))->setAllowedValues('sort', array(null, 'asc', 'desc'))->setAllowedValues('operator', array_merge(array(null), Operations::getTextOperators(), Operations::getChoiceOperators(), Operations::getDateTimeOperators()))->setAllowedTypes('sort_priority', 'int');
 }
 /**
  * Configure adapter options
  *
  * @param OptionsResolver $resolver
  * @throws \Symfony\Component\OptionsResolver\Exception\ExceptionInterface
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setDefined('digest_domains')->setAllowedTypes('digest_domains', 'string');
     $resolver->setDefined('nonce_timeout')->setAllowedTypes('nonce_timeout', 'int');
     $resolver->setDefault('use_opaque', false)->setAllowedTypes('use_opaque', 'bool');
     $resolver->setDefault('algorithm', 'MD5')->setAllowedTypes('algorithm', 'string');
 }
 public function __construct(\Doctrine\ORM\EntityManager $em, \Doctrine\ORM\Mapping\ClassMetadata $class)
 {
     $this->resolverGetEleves = new OptionsResolver();
     $this->resolverGetEleves->setDefined(array('school_id', 'date_day', 'activity_type'));
     $this->resolverGetEleves->setAllowedTypes('date_day', \DateTimeInterface::class);
     $this->resolverGetEleves->setDefaults(array('school_id' => 0));
     parent::__construct($em, $class);
 }
 /**
  * {@inheritdoc}
  */
 protected function configureProperties(OptionsResolver $resolver)
 {
     $resolver->setDefined('serverurl')->setAllowedTypes('serverurl', 'string');
     $resolver->setDefined('username')->setAllowedTypes('username', 'string');
     $resolver->setDefined('password')->setAllowedTypes('password', 'string');
     $resolver->setDefined('prompt')->setAllowedTypes('prompt', 'string');
     $resolver->setDefined('history_file')->setAllowedTypes('history_file', 'string');
 }
示例#8
0
 /**
  * Configure adapter options
  *
  * @param  OptionsResolver $resolver
  * @throws \Symfony\Component\OptionsResolver\Exception\AccessException
  * @throws \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setRequired('table_name')->setAllowedTypes('table_name', ['string']);
     $resolver->setRequired('identity_column')->setAllowedTypes('identity_column', ['string']);
     $resolver->setRequired('credential_column')->setAllowedTypes('credential_column', ['string']);
     $resolver->setDefined('roles_column')->setAllowedTypes('roles_column', ['string', 'null']);
     $resolver->setDefined('salt_column')->setAllowedTypes('salt_column', ['string', 'null']);
     $resolver->setDefault('use_ambiguity_identity', false)->setAllowedTypes('use_ambiguity_identity', ['bool']);
 }
 /**
  * {@inheritdoc}
  */
 protected function configureProperties(OptionsResolver $resolver)
 {
     $resolver->setDefined('file')->setAllowedTypes('file', 'string');
     // TODO: octal vs. decimal value
     $resolver->setDefined('chmod')->setAllowedTypes('chmod', 'int');
     $resolver->setDefined('chown')->setAllowedTypes('chown', 'string');
     $resolver->setDefined('username')->setAllowedTypes('username', 'string');
     $resolver->setDefined('password')->setAllowedTypes('password', ['string', 'numeric']);
 }
 /**
  * {@inheritdoc}
  */
 protected function configureProperties(OptionsResolver $resolver)
 {
     $resolver->setDefined('file')->setAllowedTypes('file', 'string');
     // TODO: octal vs. decimal value
     $resolver->setDefined('chmod');
     $this->configureIntegerProperty('chmod', $resolver);
     $resolver->setDefined('chown')->setAllowedTypes('chown', 'string');
     $resolver->setDefined('username')->setAllowedTypes('username', 'string');
     $resolver->setDefined('password')->setAllowedTypes('password', 'string');
 }
 /**
  * {@inheritdoc}
  */
 protected function configureProperties(OptionsResolver $resolver)
 {
     $resolver->setRequired('port')->setAllowedTypes('port', ['integer', 'string'])->setNormalizer('port', function (Options $options, $value) {
         // We cast it to integer first to make sure it is an integer representation
         is_numeric($value) and $value = '*:' . intval($value);
         return $value;
     });
     $resolver->setDefined('username')->setAllowedTypes('username', 'string');
     $resolver->setDefined('password')->setAllowedTypes('password', ['string', 'numeric']);
 }
示例#12
0
 /**
  * @return OptionsResolver
  */
 public function getConfigurableOptions()
 {
     $resolver = new OptionsResolver();
     $resolver->setDefined('clover_file');
     $resolver->setDefined('level');
     $resolver->addAllowedTypes('clover_file', ['string']);
     $resolver->addAllowedTypes('level', ['int', 'float']);
     $resolver->setDefaults(['level' => 100]);
     $resolver->setRequired('clover_file');
     return $resolver;
 }
示例#13
0
文件: Cash.php 项目: thenbsp/wechat
 /**
  * 合并和校验参数
  */
 public function resolveOptions()
 {
     $defaults = array('nonce_str' => Util::getRandomString(), 'client_ip' => Util::getClientIp());
     $resolver = new OptionsResolver();
     $resolver->setDefined($this->required)->setRequired($this->required)->setDefaults($defaults);
     return $resolver->resolve($this->toArray());
 }
示例#14
0
 function it_defines_an_assigned_data_class(OptionsResolver $resolver)
 {
     $resolver->setDefaults(['data_class' => 'PromotionRule', 'validation_groups' => ['Default']])->shouldBeCalled();
     $resolver->setDefined(['configuration_type'])->shouldBeCalled();
     $resolver->setDefaults(['configuration_type' => ItemTotalRuleChecker::TYPE])->shouldBeCalled();
     $this->configureOptions($resolver);
 }
示例#15
0
 /**
  * Configure options
  *
  * @param OptionsResolver $resolver
  * @return void
  */
 protected function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setRequired(['amount']);
     $resolver->setDefined(['currency', 'terminal', 'credit_card_token', 'payment_id']);
     $resolver->setAllowedTypes('credit_card_token', 'string');
     $resolver->setAllowedTypes('payment_id', 'string');
     $resolver->setNormalizer('currency', function (Options $options, $value) {
         if (!isset($options['payment_id'])) {
             $fields = ['terminal', 'credit_card_token', 'currency'];
             foreach ($fields as $field) {
                 if (!isset($options[$field])) {
                     throw new \InvalidArgumentException(sprintf('The fields "%s" is required', implode(', ', $fields)));
                 }
             }
         }
         return $value;
     });
     $resolver->setNormalizer('payment_id', function (Options $options, $value) {
         $fields = ['currency', 'terminal', 'credit_card_token'];
         foreach ($fields as $field) {
             if (isset($options[$field])) {
                 throw new \InvalidArgumentException(sprintf('The fields "%s" is not allowed when "payment_id" is set', implode(', ', $fields)));
             }
         }
         return $value;
     });
 }
 /**
  * @param ResponseInterface $httpResponse
  * @param string $language
  * @throws BadResponseException
  * @see https://developers.google.com/places/web-service/details#PlaceDetailsResults
  * @throws \Exception
  */
 public function __construct(ResponseInterface $httpResponse, $language)
 {
     // Get ResponseInterface content and test it for json
     $jsonData = $httpResponse->getBody()->getContents();
     $data = json_decode($jsonData, true);
     // Append language to result
     $data['language'] = $language;
     if (false === $data) {
         throw new \InvalidArgumentException(sprintf('Response : "%s" has wrong format', $data));
     }
     $options = new OptionsResolver();
     $options->setRequired(['language']);
     $options->setDefined(['error_message', 'html_attributions', 'results', 'status']);
     $this->data = $options->resolve($data);
     // Set language as part of results
     if (isset($this->data['results'])) {
         foreach ((array) $this->data['results'] as $key => $value) {
             $this->data['results'][$key]['language'] = $language;
         }
     }
     $this->data['language'] = $language;
     // Check request status
     if (!$this->checkRequestStatus()) {
         throw new \Exception(sprintf('Request failed "%s"', $jsonData));
     }
 }
 /**
  *
  * @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));
 }
示例#18
0
 /**
  * {@inheritdoc}
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setRequired('template');
     $resolver->setAllowedTypes('template', 'string');
     $resolver->setDefined('vars');
     $resolver->setAllowedTypes('vars', 'array');
 }
示例#19
0
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setDefined(['customFormModel', 'territoryRepository', 'projectSettings']);
     $resolver->setRequired(['customFormModel', 'territoryRepository', 'projectSettings']);
     $resolver->addAllowedTypes('customFormModel', CustomFormModelInterface::class);
     $resolver->addAllowedTypes('projectSettings', ProjectSettings::class);
 }
 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']);
 }
示例#21
0
 function it_should_define_assigned_data_class(OptionsResolver $resolver)
 {
     $resolver->setDefaults(array('data_class' => 'Action', 'validation_groups' => array('sylius')))->shouldBeCalled();
     $resolver->setDefined(array('configuration_type'))->shouldBeCalled();
     $resolver->setDefaults(array('configuration_type' => ActionInterface::TYPE_FIXED_DISCOUNT))->shouldBeCalled();
     $this->configureOptions($resolver);
 }
示例#22
0
 function it_should_configure_options(OptionsResolver $resolver)
 {
     $resolver->setDefined('vars')->shouldBeCalled();
     $resolver->setRequired(['template'])->shouldBeCalled();
     $resolver->setAllowedTypes(['template' => ['string'], 'vars' => ['array']])->shouldBeCalled();
     $this->configureOptions($resolver);
 }
 /**
  * @param \Symfony\Component\OptionsResolver\OptionsResolver $resolver
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setDefined($this->prependAndAppendOptions);
     foreach ($this->prependAndAppendOptions as $option) {
         $resolver->setAllowedTypes($option, 'string');
     }
 }
示例#24
0
 /**
  * Configure adapter options
  *
  * @param  OptionsResolver $resolver
  * @throws \Symfony\Component\OptionsResolver\Exception\AccessException
  * @throws \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setRequired('username')->setAllowedTypes('username', ['string']);
     $resolver->setRequired('password')->setAllowedTypes('password', ['string']);
     $resolver->setRequired('roles')->setAllowedTypes('roles', ['array']);
     $resolver->setDefined('salt')->setAllowedTypes('salt', ['string', 'null']);
 }
 /**
  * @param array $data
  */
 public function __construct(array $data)
 {
     $options = new OptionsResolver();
     $options->setRequired('language');
     $options->setDefined(['address_components', 'formatted_address', 'formatted_phone_number', 'geometry', 'icon', 'id', 'international_phone_number', 'name', 'opening_hours', 'adr_address', 'place_id', 'geometry', 'reference', 'scope', 'types', 'url', 'vicinity', 'html_attributions']);
     $this->data = $options->resolve($data);
 }
示例#26
0
 /**
  * {@inheritdoc}
  */
 public function setDefined($optionNames)
 {
     if (!$this->isLatest()) {
         return $this->setOptional($optionNames);
     }
     return parent::setDefined($optionNames);
 }
示例#27
0
 function it_should_define_assigned_data_class(OptionsResolver $resolver)
 {
     $resolver->setDefaults(['data_class' => 'Rule', 'validation_groups' => ['Default']])->shouldBeCalled();
     $resolver->setDefined(['configuration_type'])->shouldBeCalled();
     $resolver->setDefaults(['configuration_type' => RuleInterface::TYPE_ITEM_TOTAL])->shouldBeCalled();
     $this->configureOptions($resolver);
 }
 public function resolve(array $value) : array
 {
     $optionsResolver = new OptionsResolver();
     $optionsResolver->setDefined(self::NAME);
     $this->setSourceAllowedValues($optionsResolver);
     $values = $optionsResolver->resolve([self::NAME => $value]);
     return $values[self::NAME];
 }
 /**
  * {@inheritdoc}
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setDefined(['repository_options', 'identifier'])->setRequired(['repository'])->setDefaults(['repository_options' => [], 'identifier' => 'code'])->setNormalizer('choices', function (Options $options, $value) {
         return $options['repository']->findTranslatedLabels($options['repository_options']);
     })->setAllowedValues(['repository' => function ($repository) {
         return $repository instanceof TranslatedLabelsProviderInterface;
     }]);
 }
 /**
  * In resolve() we count the options that are actually set (which may be
  * only a subset of the defined options). Outside of resolve(), it's not
  * clear what is counted.
  *
  * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException
  */
 public function testCountFailsOutsideResolve()
 {
     $this->resolver->setDefault('foo', 0);
     $this->resolver->setRequired('bar');
     $this->resolver->setDefined('bar');
     $this->resolver->setDefault('lazy1', function () {
     });
     count($this->resolver);
 }