/** * {@inheritdoc} */ public function getConfigTreeBuilder() { $treeBuilder = new TreeBuilder(); $rootNode = $treeBuilder->root('nexy_paybox_direct'); $rootNode->children()->scalarNode('client')->defaultNull()->end()->arrayNode('options')->addDefaultsIfNotSet()->children()->integerNode('timeout')->end()->booleanNode('production')->end()->end()->end()->arrayNode('paybox')->isRequired()->addDefaultsIfNotSet()->children()->scalarNode('version')->isRequired()->cannotBeEmpty()->validate()->ifNotInArray(Version::getKeys('strtolower'))->thenInvalid('Invalid Paybox version')->end()->end()->scalarNode('site')->isRequired()->cannotBeEmpty()->end()->scalarNode('rank')->isRequired()->cannotBeEmpty()->end()->scalarNode('identifier')->isRequired()->cannotBeEmpty()->end()->scalarNode('key')->isRequired()->cannotBeEmpty()->end()->scalarNode('default_currency')->validate()->ifNotInArray(Currency::getKeys('strtolower'))->thenInvalid('Invalid Paybox currency')->end()->end()->scalarNode('default_activity')->validate()->ifNotInArray(Activity::getKeys('strtolower'))->thenInvalid('Invalid Paybox activity')->end()->end()->end()->end()->end(); return $treeBuilder; }
/** * Paybox base options validation. * * @param OptionsResolver $resolver */ private function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(['timeout' => 10, 'production' => false, 'paybox_default_currency' => Currency::EURO]); $resolver->setDefined(['paybox_default_activity']); $resolver->setRequired(['paybox_version', 'paybox_site', 'paybox_rank', 'paybox_identifier', 'paybox_key']); $resolver->setAllowedTypes('timeout', 'int'); $resolver->setAllowedTypes('production', 'bool'); $resolver->setAllowedTypes('paybox_version', 'string'); $resolver->setAllowedTypes('paybox_default_currency', 'int'); $resolver->setAllowedTypes('paybox_site', 'string'); $resolver->setAllowedTypes('paybox_rank', 'string'); $resolver->setAllowedTypes('paybox_identifier', 'string'); $resolver->setAllowedTypes('paybox_key', 'string'); $resolver->setAllowedValues('paybox_version', Version::getConstants()); $resolver->setAllowedValues('paybox_default_activity', Activity::getConstants()); }