for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Potievdev\SlimRbac\Component\Config;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
/**
* Rbac configuration structure.
*/
class RbacConfigStructure implements ConfigurationInterface
{
public function getConfigTreeBuilder(): TreeBuilder
$treeBuilder = new TreeBuilder('rbac');
$rootNode = $treeBuilder->getRootNode();
$rootNode
->children()
->arrayNode('database')
->enumNode('driver')
->values(['pdo_mysql', 'pdo_postgres'])
->isRequired()
->end()
->scalarNode('host')
->cannotBeEmpty()
->scalarNode('user')
->scalarNode('password')
->integerNode('port')
->scalarNode('dbname')
->scalarNode('charset')
->arrayNode('userId')
->scalarNode('fieldName')
->enumNode('resourceType')
->values(['attribute', 'header', 'cookie'])
;
return $treeBuilder;
}