From ca1362aca48aeb47af8ddff229f581cf4411dc9a Mon Sep 17 00:00:00 2001
From: Simon Podlipsky <simon@podlipsky.net>
Date: Wed, 3 Jul 2019 11:53:35 +0300
Subject: [PATCH] Use new API for rootnode

---
 .travis.yml                                            |  5 +++++
 src/DependencyInjection/Configuration.php              | 10 ++++++++--
 .../KdybyDateTimeProviderExtensionTest.php             |  1 -
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 6f0132d..acc7ddb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,6 +9,8 @@ cache:
 php:
   - 7.1
   - 7.2
+  - 7.3
+  - 7.4snapshot
   - nightly
 
 before_install:
@@ -27,6 +29,9 @@ stages:
   - Code Quality
 
 jobs:
+  allow_failures:
+    -   php: nightly
+
   include:
     - stage: Test
       env: DEV_DEPENDENCIES
diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php
index 79b334c..1a538b4 100644
--- a/src/DependencyInjection/Configuration.php
+++ b/src/DependencyInjection/Configuration.php
@@ -15,6 +15,7 @@
 use Kdyby\StrictObjects\Scream;
 use Symfony\Component\Config\Definition\Builder\TreeBuilder;
 use Symfony\Component\Config\Definition\ConfigurationInterface;
+use function method_exists;
 
 class Configuration implements ConfigurationInterface
 {
@@ -27,8 +28,13 @@ class Configuration implements ConfigurationInterface
 
     public function getConfigTreeBuilder() : TreeBuilder
     {
-        $treeBuilder = new TreeBuilder();
-        $rootNode    = $treeBuilder->root('kdyby_datetime_provider');
+        $treeBuilder = new TreeBuilder('kdyby_datetime_provider');
+        if (method_exists($treeBuilder, 'getRootNode')) {
+            $rootNode = $treeBuilder->getRootNode();
+        } else {
+            // BC layer for symfony/config 4.1 and older
+            $rootNode = $treeBuilder->root('kdyby_datetime_provider');
+        }
 
 		// @codingStandardsIgnoreStart
 		$rootNode
diff --git a/tests/DateTimeProviderBundle/DependencyInjection/KdybyDateTimeProviderExtensionTest.php b/tests/DateTimeProviderBundle/DependencyInjection/KdybyDateTimeProviderExtensionTest.php
index a4317ef..7aff1b8 100644
--- a/tests/DateTimeProviderBundle/DependencyInjection/KdybyDateTimeProviderExtensionTest.php
+++ b/tests/DateTimeProviderBundle/DependencyInjection/KdybyDateTimeProviderExtensionTest.php
@@ -150,7 +150,6 @@ public function getRequestTime() : DateTimeImmutable
             {
                 return $this->dateTime;
             }
-
         };
     }