1 | <?php |
||||
2 | |||||
3 | declare(strict_types=1); |
||||
4 | |||||
5 | namespace Pheature\Community\Symfony\DependencyInjection; |
||||
6 | |||||
7 | use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition; |
||||
8 | use Symfony\Component\Config\Definition\Builder\TreeBuilder; |
||||
9 | use Symfony\Component\Config\Definition\ConfigurationInterface; |
||||
10 | |||||
11 | final class Configuration implements ConfigurationInterface |
||||
12 | { |
||||
13 | /** |
||||
14 | * @return TreeBuilder |
||||
15 | */ |
||||
16 | 12 | public function getConfigTreeBuilder(): TreeBuilder |
|||
17 | { |
||||
18 | 12 | $treeBuilder = new TreeBuilder('pheature_flags'); |
|||
19 | /** @var ArrayNodeDefinition $rootNode */ |
||||
20 | 12 | $rootNode = $treeBuilder->getRootNode(); |
|||
21 | /** @phpstan-ignore-next-line */ |
||||
22 | 12 | $rootNode->children() |
|||
23 | 12 | ->enumNode('driver') |
|||
24 | 12 | ->values(['inmemory', 'dbal', 'chain']) |
|||
25 | 12 | ->end() |
|||
26 | 12 | ->arrayNode('driver_options') |
|||
0 ignored issues
–
show
Bug
introduced
by
![]() |
|||||
27 | 12 | ->scalarPrototype()->end() |
|||
28 | 12 | ->end() |
|||
29 | 12 | ->scalarNode('api_prefix') |
|||
30 | 12 | ->defaultValue('') |
|||
31 | 12 | ->end() |
|||
32 | 12 | ->booleanNode('api_enabled') |
|||
33 | ->defaultFalse() |
||||
34 | 12 | ->end() |
|||
35 | 12 | ->end(); |
|||
36 | 12 | ||||
37 | $this->addStrategyTypes($rootNode); |
||||
38 | 12 | $this->addSegmentTypes($rootNode); |
|||
39 | $this->addToggles($rootNode); |
||||
40 | |||||
41 | 12 | return $treeBuilder; |
|||
42 | } |
||||
43 | |||||
44 | private function addStrategyTypes(ArrayNodeDefinition $rootNode): void |
||||
45 | 12 | { |
|||
46 | 12 | /** @phpstan-ignore-next-line */ |
|||
47 | 12 | $rootNode |
|||
48 | 12 | ->children() |
|||
49 | 12 | ->arrayNode('strategy_types') |
|||
50 | 12 | ->arrayPrototype() |
|||
51 | 12 | ->children() |
|||
52 | 12 | ->scalarNode('type')->end() |
|||
53 | 12 | ->scalarNode('factory_id')->end() |
|||
0 ignored issues
–
show
The method
scalarNode() does not exist on Symfony\Component\Config...der\NodeParentInterface . It seems like you code against a sub-type of Symfony\Component\Config...der\NodeParentInterface such as Symfony\Component\Config...ion\Builder\NodeBuilder .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||
54 | 12 | ->end() |
|||
55 | ->end() |
||||
56 | 12 | ->end(); |
|||
57 | } |
||||
58 | |||||
59 | private function addSegmentTypes(ArrayNodeDefinition $rootNode): void |
||||
60 | 12 | { |
|||
61 | 12 | /** @phpstan-ignore-next-line */ |
|||
62 | 12 | $rootNode |
|||
63 | 12 | ->children() |
|||
64 | 12 | ->arrayNode('segment_types') |
|||
65 | 12 | ->arrayPrototype() |
|||
66 | 12 | ->children() |
|||
67 | 12 | ->scalarNode('type')->end() |
|||
68 | 12 | ->scalarNode('factory_id')->end() |
|||
69 | 12 | ->end() |
|||
70 | ->end() |
||||
71 | 12 | ->end(); |
|||
72 | } |
||||
73 | |||||
74 | private function addToggles(ArrayNodeDefinition $rootNode): void |
||||
75 | 12 | { |
|||
76 | 12 | /** @phpstan-ignore-next-line */ |
|||
77 | 12 | $rootNode |
|||
78 | 12 | ->children() |
|||
79 | 12 | ->arrayNode('toggles') |
|||
80 | 12 | ->arrayPrototype() |
|||
81 | 12 | ->children() |
|||
82 | 12 | ->scalarNode('id')->end() |
|||
83 | 12 | ->scalarNode('enabled')->end() |
|||
84 | 12 | ->arrayNode('strategies') |
|||
85 | 12 | ->arrayPrototype() |
|||
86 | 12 | ->children() |
|||
87 | 12 | ->scalarNode('strategy_id')->end() |
|||
88 | 12 | ->scalarNode('strategy_type')->end() |
|||
89 | 12 | ->arrayNode('segments') |
|||
90 | 12 | ->arrayPrototype() |
|||
91 | 12 | ->children() |
|||
92 | 12 | ->scalarNode('segment_id')->end() |
|||
93 | 12 | ->scalarNode('segment_type')->end() |
|||
94 | 12 | ->variableNode('criteria')->end() |
|||
95 | 12 | ->end() |
|||
96 | 12 | ->end() |
|||
97 | 12 | ->end() |
|||
98 | 12 | ->end() |
|||
99 | 12 | ->end() |
|||
100 | 12 | ->end() |
|||
101 | 12 | ->end() |
|||
102 | ->end() |
||||
103 | ->end(); |
||||
104 | } |
||||
105 | } |
||||
106 |