[!!!][TASK] Remove deprecated code in EXT:core
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Classes / Configuration / SiteConfiguration.php
index aecd628..30943d0 100644 (file)
@@ -91,6 +91,8 @@ class SiteConfiguration
     {
         // Check if the data is already cached
         if ($siteConfiguration = $this->getCache()->get($this->cacheIdentifier)) {
+            // Due to the nature of PhpFrontend, the `<?php` and `#` wraps have to be removed
+            $siteConfiguration = preg_replace('/^<\?php\s*|\s*#$/', '', $siteConfiguration);
             $siteConfiguration = json_decode($siteConfiguration, true);
         }
 
@@ -108,13 +110,6 @@ class SiteConfiguration
             foreach ($finder as $fileInfo) {
                 $configuration = $loader->load(GeneralUtility::fixWindowsFilePath((string)$fileInfo));
                 $identifier = basename($fileInfo->getPath());
-                if (isset($configuration['site'])) {
-                    trigger_error(
-                        'Site configuration with key \'site\' has been deprecated, remove indentation level and site key.',
-                        E_USER_DEPRECATED
-                    );
-                    $configuration = $configuration['site'];
-                }
                 $siteConfiguration[$identifier] = $configuration;
             }
             $this->getCache()->set($this->cacheIdentifier, json_encode($siteConfiguration));
@@ -123,6 +118,23 @@ class SiteConfiguration
     }
 
     /**
+     * Load plain configuration
+     * This method should only be used in case the original configuration as it exists in the file should be loaded,
+     * for example for writing / editing configuration.
+     *
+     * All read related actions should be performed on the site entity.
+     *
+     * @param string $siteIdentifier
+     * @return array
+     */
+    public function load(string $siteIdentifier): array
+    {
+        $fileName = $this->configPath . '/' . $siteIdentifier . '/' . $this->configFileName;
+        $loader = GeneralUtility::makeInstance(YamlFileLoader::class);
+        return $loader->load(GeneralUtility::fixWindowsFilePath($fileName), YamlFileLoader::PROCESS_IMPORTS);
+    }
+
+    /**
      * Add or update a site configuration
      *
      * @param string $siteIdentifier
@@ -138,6 +150,7 @@ class SiteConfiguration
         $yamlFileContents = Yaml::dump($configuration, 99, 2);
         GeneralUtility::writeFile($fileName, $yamlFileContents);
         $this->getCache()->remove($this->cacheIdentifier);
+        $this->getCache()->remove('pseudo-sites');
     }
 
     /**
@@ -175,6 +188,7 @@ class SiteConfiguration
         }
         @unlink($fileName);
         $this->getCache()->remove($this->cacheIdentifier);
+        $this->getCache()->remove('pseudo-sites');
     }
 
     /**