From 8b3737353aec1a70c35938b21226cb4955fcd5b0 Mon Sep 17 00:00:00 2001
From: Georg Ringer <georg.ringer@gmail.com>
Date: Thu, 8 Oct 2020 19:32:18 +0200
Subject: [PATCH] [TASK] Remove empty array from site configuration before
 persisting

Having empty array like `routes: {  }` make it hard to lint the site
configuration yaml files. To have a cleaner state, those empty arrays
are removed before they are persisted.

Resolves: #92524
Releases: master, 10.4
Change-Id: Id4f9cae7deb5903bf735cc1076731a5105b494ec
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/66091
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: Josef Glatz <josefglatz@gmail.com>
Tested-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Josef Glatz <josefglatz@gmail.com>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
---
 .../Classes/Controller/SiteConfigurationController.php     | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/typo3/sysext/backend/Classes/Controller/SiteConfigurationController.php b/typo3/sysext/backend/Classes/Controller/SiteConfigurationController.php
index d45590356894..54f706477480 100644
--- a/typo3/sysext/backend/Classes/Controller/SiteConfigurationController.php
+++ b/typo3/sysext/backend/Classes/Controller/SiteConfigurationController.php
@@ -556,6 +556,13 @@ class SiteConfigurationController
         }
         $newSysSiteData['languages'] = $validChildren;
 
+        // cleanup configuration
+        foreach ($newSysSiteData as $identifier => $value) {
+            if (is_array($value) && empty($value)) {
+                unset($newSysSiteData[$identifier]);
+            }
+        }
+
         return $newSysSiteData;
     }
 
-- 
GitLab