4
4
5
5
namespace Iter8 \Bundle \LdapRecordBundle \DependencyInjection ;
6
6
7
+ use Symfony \Component \Config \Definition \Builder \ArrayNodeDefinition ;
7
8
use Symfony \Component \Config \Definition \Builder \TreeBuilder ;
8
9
use Symfony \Component \Config \Definition \ConfigurationInterface ;
9
10
10
11
final class Configuration implements ConfigurationInterface
11
12
{
13
+ /**
14
+ * @psalm-return TreeBuilder<'array'>
15
+ *
16
+ * @phpstan-return TreeBuilder
17
+ */
12
18
public function getConfigTreeBuilder (): TreeBuilder
13
19
{
14
20
$ treeBuilder = new TreeBuilder ('iter8_ldap_record ' );
15
21
16
22
$ rootNode = $ treeBuilder ->getRootNode ();
17
23
24
+ $ this ->addHostsSection ($ rootNode );
25
+ $ this ->addBaseDnSection ($ rootNode );
26
+ $ this ->addUsernameSection ($ rootNode );
27
+ $ this ->addPasswordSection ($ rootNode );
28
+ $ this ->addPortSection ($ rootNode );
29
+ $ this ->addUseSslSection ($ rootNode );
30
+ $ this ->addUseTlsSection ($ rootNode );
31
+ $ this ->addVersionSection ($ rootNode );
32
+ $ this ->addTimeoutSection ($ rootNode );
33
+ $ this ->addFollowReferralsSection ($ rootNode );
34
+ $ this ->addAutoConnectSection ($ rootNode );
35
+ $ this ->addOptionsSection ($ rootNode );
36
+
37
+ return $ treeBuilder ;
38
+ }
39
+
40
+ private function addHostsSection (ArrayNodeDefinition $ rootNode ): void
41
+ {
42
+ /*
43
+ * @psalm-suppress PossiblyNullReference
44
+ * @psalm-suppress PossiblyUndefinedMethod
45
+ * @psalm-suppress ReservedWord
46
+ */
18
47
$ rootNode
19
48
->children ()
20
49
->arrayNode ('hosts ' )
21
50
->requiresAtLeastOneElement ()
22
- ->scalarPrototype ()
23
- ->end ()
51
+ ->scalarPrototype ()->end ()
24
52
->end ()
53
+ ->end ();
54
+ }
55
+
56
+ private function addBaseDnSection (ArrayNodeDefinition $ rootNode ): void
57
+ {
58
+ /*
59
+ * @psalm-suppress PossiblyNullReference
60
+ * @psalm-suppress PossiblyUndefinedMethod
61
+ * @psalm-suppress ReservedWord
62
+ * @psalm-suppress UnusedMethodCall
63
+ */
64
+ $ rootNode
65
+ ->children ()
25
66
->scalarNode ('base_dn ' )
26
67
->isRequired ()
27
68
->cannotBeEmpty ()
28
69
->end ()
70
+ ->end ();
71
+ }
72
+
73
+ private function addUsernameSection (ArrayNodeDefinition $ rootNode ): void
74
+ {
75
+ /*
76
+ * @psalm-suppress PossiblyNullReference
77
+ * @psalm-suppress PossiblyUndefinedMethod
78
+ * @psalm-suppress ReservedWord
79
+ * @psalm-suppress UnusedMethodCall
80
+ */
81
+ $ rootNode
82
+ ->children ()
29
83
->scalarNode ('username ' )
30
84
->isRequired ()
31
85
->cannotBeEmpty ()
32
86
->end ()
87
+ ->end ();
88
+ }
89
+
90
+ private function addPasswordSection (ArrayNodeDefinition $ rootNode ): void
91
+ {
92
+ /*
93
+ * @psalm-suppress PossiblyNullReference
94
+ * @psalm-suppress PossiblyUndefinedMethod
95
+ * @psalm-suppress ReservedWord
96
+ * @psalm-suppress UnusedMethodCall
97
+ */
98
+ $ rootNode
99
+ ->children ()
33
100
->scalarNode ('password ' )
34
101
->isRequired ()
35
102
->end ()
103
+ ->end ();
104
+ }
105
+
106
+ private function addPortSection (ArrayNodeDefinition $ rootNode ): void
107
+ {
108
+ /*
109
+ * @psalm-suppress PossiblyNullReference
110
+ * @psalm-suppress PossiblyUndefinedMethod
111
+ * @psalm-suppress ReservedWord
112
+ * @psalm-suppress UnusedMethodCall
113
+ */
114
+ $ rootNode
115
+ ->children ()
36
116
->integerNode ('port ' )
37
117
->min (1 )
38
118
->max (65535 )
39
119
->defaultValue (389 )
40
120
->end ()
121
+ ->end ();
122
+ }
123
+
124
+ private function addUseSslSection (ArrayNodeDefinition $ rootNode ): void
125
+ {
126
+ /*
127
+ * @psalm-suppress PossiblyNullReference
128
+ * @psalm-suppress PossiblyUndefinedMethod
129
+ * @psalm-suppress ReservedWord
130
+ * @psalm-suppress UnusedMethodCall
131
+ */
132
+ $ rootNode
133
+ ->children ()
41
134
->booleanNode ('use_ssl ' )
42
135
->defaultFalse ()
43
136
->end ()
137
+ ->end ();
138
+ }
139
+
140
+ private function addUseTlsSection (ArrayNodeDefinition $ rootNode ): void
141
+ {
142
+ /*
143
+ * @psalm-suppress PossiblyNullReference
144
+ * @psalm-suppress PossiblyUndefinedMethod
145
+ * @psalm-suppress ReservedWord
146
+ * @psalm-suppress UnusedMethodCall
147
+ */
148
+ $ rootNode
149
+ ->children ()
44
150
->booleanNode ('use_tls ' )
45
151
->defaultFalse ()
46
152
->end ()
153
+ ->end ();
154
+ }
155
+
156
+ private function addVersionSection (ArrayNodeDefinition $ rootNode ): void
157
+ {
158
+ /*
159
+ * @psalm-suppress PossiblyNullReference
160
+ * @psalm-suppress PossiblyUndefinedMethod
161
+ * @psalm-suppress ReservedWord
162
+ * @psalm-suppress UnusedMethodCall
163
+ */
164
+ $ rootNode
165
+ ->children ()
47
166
->enumNode ('version ' )
48
167
->values ([2 , 3 ])
49
168
->defaultValue (3 )
50
169
->end ()
170
+ ->end ();
171
+ }
172
+
173
+ private function addTimeoutSection (ArrayNodeDefinition $ rootNode ): void
174
+ {
175
+ /*
176
+ * @psalm-suppress PossiblyNullReference
177
+ * @psalm-suppress PossiblyUndefinedMethod
178
+ * @psalm-suppress ReservedWord
179
+ * @psalm-suppress UnusedMethodCall
180
+ */
181
+ $ rootNode
182
+ ->children ()
51
183
->integerNode ('timeout ' )
52
184
->info ('Timeout (in seconds). ' )
53
185
->defaultValue (5 )
54
186
->end ()
187
+ ->end ();
188
+ }
189
+
190
+ private function addFollowReferralsSection (ArrayNodeDefinition $ rootNode ): void
191
+ {
192
+ /*
193
+ * @psalm-suppress PossiblyNullReference
194
+ * @psalm-suppress PossiblyUndefinedMethod
195
+ * @psalm-suppress ReservedWord
196
+ * @psalm-suppress UnusedMethodCall
197
+ */
198
+ $ rootNode
199
+ ->children ()
55
200
->booleanNode ('follow_referrals ' )
56
201
->defaultFalse ()
57
202
->end ()
203
+ ->end ();
204
+ }
205
+
206
+ private function addAutoConnectSection (ArrayNodeDefinition $ rootNode ): void
207
+ {
208
+ /*
209
+ * @psalm-suppress PossiblyNullReference
210
+ * @psalm-suppress PossiblyUndefinedMethod
211
+ * @psalm-suppress ReservedWord
212
+ * @psalm-suppress UnusedMethodCall
213
+ */
214
+ $ rootNode
215
+ ->children ()
58
216
->booleanNode ('auto_connect ' )
59
217
->defaultFalse ()
60
218
->end ()
219
+ ->end ();
220
+ }
221
+
222
+ private function addOptionsSection (ArrayNodeDefinition $ rootNode ): void
223
+ {
224
+ /*
225
+ * @psalm-suppress PossiblyNullReference
226
+ * @psalm-suppress PossiblyUndefinedMethod
227
+ * @psalm-suppress ReservedWord
228
+ */
229
+ $ rootNode
230
+ ->children ()
61
231
->arrayNode ('options ' )
62
232
->arrayPrototype ()
63
233
->children ()
@@ -67,7 +237,5 @@ public function getConfigTreeBuilder(): TreeBuilder
67
237
->end ()
68
238
->end ()
69
239
->end ();
70
-
71
- return $ treeBuilder ;
72
240
}
73
241
}
0 commit comments