@@ -38,17 +38,33 @@ public function __construct($debug)
38
38
$ this ->debug = (bool ) $ debug ;
39
39
}
40
40
41
+ /**
42
+ * Proxy to get root node for Symfony < 4.2.
43
+ *
44
+ * @param TreeBuilder $treeBuilder
45
+ * @param string $name
46
+ *
47
+ * @return NodeDefinition
48
+ */
49
+ protected function getRootNode (TreeBuilder $ treeBuilder , string $ name )
50
+ {
51
+ if (\method_exists ($ treeBuilder , 'getRootNode ' )) {
52
+ return $ treeBuilder ->getRootNode ();
53
+ } else {
54
+ return $ treeBuilder ->root ($ name );
55
+ }
56
+ }
57
+
41
58
/**
42
59
* Generates the configuration tree builder.
43
60
*
44
61
* @return TreeBuilder The tree builder
45
62
*/
46
63
public function getConfigTreeBuilder ()
47
64
{
48
- $ treeBuilder = new TreeBuilder ();
49
- $ rootNode = $ treeBuilder ->root ('bazinga_geocoder ' );
65
+ $ treeBuilder = new TreeBuilder ('bazinga_geocoder ' );
50
66
51
- $ rootNode
67
+ $ this -> getRootNode ( $ treeBuilder , ' bazinga_geocoder ' )
52
68
->children ()
53
69
->append ($ this ->getProvidersNode ())
54
70
->arrayNode ('profiling ' )
@@ -85,10 +101,9 @@ public function getConfigTreeBuilder()
85
101
*/
86
102
private function getProvidersNode ()
87
103
{
88
- $ treeBuilder = new TreeBuilder ();
89
- $ node = $ treeBuilder ->root ('providers ' );
104
+ $ treeBuilder = new TreeBuilder ('providers ' );
90
105
91
- $ node
106
+ return $ this -> getRootNode ( $ treeBuilder , ' providers ' )
92
107
->requiresAtLeastOneElement ()
93
108
->useAttributeAsKey ('name ' )
94
109
->prototype ('array ' )
@@ -111,8 +126,6 @@ private function getProvidersNode()
111
126
->append ($ this ->createClientPluginNode ())
112
127
->end ()
113
128
->end ();
114
-
115
- return $ node ;
116
129
}
117
130
118
131
/**
@@ -122,8 +135,8 @@ private function getProvidersNode()
122
135
*/
123
136
private function createClientPluginNode ()
124
137
{
125
- $ builder = new TreeBuilder ();
126
- $ node = $ builder -> root ( 'plugins ' );
138
+ $ builder = new TreeBuilder (' plugins ' );
139
+ $ node = $ this -> getRootNode ( $ builder , 'plugins ' );
127
140
128
141
/** @var ArrayNodeDefinition $pluginList */
129
142
$ pluginList = $ node
0 commit comments