@@ -38,17 +38,33 @@ public function __construct($debug)
3838 $ this ->debug = (bool ) $ debug ;
3939 }
4040
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+
4158 /**
4259 * Generates the configuration tree builder.
4360 *
4461 * @return TreeBuilder The tree builder
4562 */
4663 public function getConfigTreeBuilder ()
4764 {
48- $ treeBuilder = new TreeBuilder ();
49- $ rootNode = $ treeBuilder ->root ('bazinga_geocoder ' );
65+ $ treeBuilder = new TreeBuilder ('bazinga_geocoder ' );
5066
51- $ rootNode
67+ $ this -> getRootNode ( $ treeBuilder , ' bazinga_geocoder ' )
5268 ->children ()
5369 ->append ($ this ->getProvidersNode ())
5470 ->arrayNode ('profiling ' )
@@ -85,10 +101,9 @@ public function getConfigTreeBuilder()
85101 */
86102 private function getProvidersNode ()
87103 {
88- $ treeBuilder = new TreeBuilder ();
89- $ node = $ treeBuilder ->root ('providers ' );
104+ $ treeBuilder = new TreeBuilder ('providers ' );
90105
91- $ node
106+ return $ this -> getRootNode ( $ treeBuilder , ' providers ' )
92107 ->requiresAtLeastOneElement ()
93108 ->useAttributeAsKey ('name ' )
94109 ->prototype ('array ' )
@@ -111,8 +126,6 @@ private function getProvidersNode()
111126 ->append ($ this ->createClientPluginNode ())
112127 ->end ()
113128 ->end ();
114-
115- return $ node ;
116129 }
117130
118131 /**
@@ -122,8 +135,8 @@ private function getProvidersNode()
122135 */
123136 private function createClientPluginNode ()
124137 {
125- $ builder = new TreeBuilder ();
126- $ node = $ builder -> root ( 'plugins ' );
138+ $ builder = new TreeBuilder (' plugins ' );
139+ $ node = $ this -> getRootNode ( $ builder , 'plugins ' );
127140
128141 /** @var ArrayNodeDefinition $pluginList */
129142 $ pluginList = $ node
0 commit comments