-
Notifications
You must be signed in to change notification settings - Fork 36
/
Copy pathConfiguration.php
49 lines (45 loc) · 2.25 KB
/
Configuration.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
namespace Enqueue\ElasticaBundle\DependencyInjection;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
class Configuration implements ConfigurationInterface
{
/**
* {@inheritdoc}
*/
public function getConfigTreeBuilder()
{
$tb = new TreeBuilder('enqueue_elastica');
if (method_exists($tb, 'getRootNode')) {
$rootNode = $tb->getRootNode();
} else {
// BC layer for symfony/config 4.1 and older
$rootNode = $tb->root('enqueue_elastica');
}
$rootNode
->children()
->booleanNode('enabled')->defaultValue(true)->end()
->scalarNode('transport')->defaultValue('%enqueue.default_transport%')->cannotBeEmpty()->isRequired()->end()
->arrayNode('doctrine')
->children()
->scalarNode('driver')->defaultValue('orm')->cannotBeEmpty()
->validate()->ifNotInArray(['orm', 'mongodb'])->thenInvalid('Invalid driver')
->end()->end()
->arrayNode('queue_listeners')
->prototype('array')
->addDefaultsIfNotSet()
->children()
->booleanNode('insert')->defaultTrue()->end()
->booleanNode('update')->defaultTrue()->end()
->booleanNode('remove')->defaultTrue()->end()
->scalarNode('connection')->defaultValue('default')->cannotBeEmpty()->end()
->scalarNode('index_name')->isRequired()->cannotBeEmpty()->end()
->scalarNode('type_name')->isRequired()->cannotBeEmpty()->end()
->scalarNode('model_class')->isRequired()->cannotBeEmpty()->end()
->scalarNode('model_id')->defaultValue('id')->cannotBeEmpty()->end()
->scalarNode('repository_method')->defaultValue('find')->cannotBeEmpty()->end()
->end()
;
return $tb;
}
}