for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Nexy\PayboxDirect\Bridge\Symfony\DependencyInjection;
use Nexy\PayboxDirect\Enum\Currency;
use Nexy\PayboxDirect\Enum\Version;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
/**
* @author Sullivan Senechal <[email protected]>
*/
final class Configuration implements ConfigurationInterface
{
* {@inheritdoc}
public function getConfigTreeBuilder()
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('nexy_paybox_direct');
$rootNode
->children()
->scalarNode('client')->defaultNull()->end()
->arrayNode('options')
->addDefaultsIfNotSet()
->integerNode('timeout')->end()
->booleanNode('production')->end()
->end()
->arrayNode('paybox')
->isRequired()
->scalarNode('version')
->cannotBeEmpty()
->validate()
->ifNotInArray(Version::getKeys('strtolower'))
->thenInvalid('Invalid Paybox version')
->scalarNode('site')->isRequired()->cannotBeEmpty()->end()
->scalarNode('rank')->isRequired()->cannotBeEmpty()->end()
->scalarNode('identifier')->isRequired()->cannotBeEmpty()->end()
->scalarNode('key')->isRequired()->cannotBeEmpty()->end()
->scalarNode('default_currency')
->ifNotInArray(Currency::getKeys('strtolower'))
;
return $treeBuilder;
}