コード例 #1
0
ファイル: Configuration.php プロジェクト: innmind/rest-server
 /**
  * {@inheritdoc}
  */
 public function getConfigTreeBuilder()
 {
     $builder = new TreeBuilder();
     $root = $builder->root('innmind_rest_server');
     $root->useAttributeAsKey('name')->prototype('array')->children()->arrayNode('children')->info('Recursive directories of resources')->prototype('variable')->end()->defaultValue([])->end()->arrayNode('resources')->useAttributeAsKey('name')->prototype('array')->children()->scalarNode('identity')->isRequired()->end()->scalarNode('gateway')->isRequired()->end()->arrayNode('properties')->useAttributeAsKey('name')->prototype('array')->children()->scalarNode('type')->isRequired()->end()->arrayNode('access')->prototype('scalar')->end()->defaultValue([Access::READ])->end()->arrayNode('variants')->prototype('scalar')->end()->defaultValue([])->end()->booleanNode('optional')->defaultFalse()->end()->arrayNode('options')->prototype('variable')->end()->defaultValue([])->end()->end()->end()->end()->arrayNode('options')->prototype('variable')->end()->defaultValue([])->end()->arrayNode('metas')->prototype('variable')->end()->defaultValue([])->end()->booleanNode('rangeable')->defaultTrue()->end()->arrayNode('linkable_to')->prototype('scalar')->end()->defaultValue([])->end()->end()->end()->end()->end()->end();
     return $builder;
 }
コード例 #2
0
ファイル: Configuration.php プロジェクト: innmind/neo4j-onm
 private function createPropertiesNode() : NodeDefinition
 {
     $builder = new TreeBuilder();
     $node = $builder->root('properties');
     $node->canBeUnset()->useAttributeAsKey('name')->requiresAtLeastOneElement()->prototype('array')->prototype('variable')->end()->beforeNormalization()->always()->then(function ($value) {
         if (is_string($value)) {
             return ['type' => $value];
         }
         $type = $value['type'] ?? null;
         if (empty($type)) {
             throw new InvalidConfigurationException();
         }
         return $value;
     })->end()->end();
     return $node;
 }