diff --git a/lib/internal/Magento/Framework/App/DeploymentConfig/Reader.php b/lib/internal/Magento/Framework/App/DeploymentConfig/Reader.php index 06a66a2b3f873..ff7077213c5c3 100644 --- a/lib/internal/Magento/Framework/App/DeploymentConfig/Reader.php +++ b/lib/internal/Magento/Framework/App/DeploymentConfig/Reader.php @@ -9,7 +9,9 @@ use Magento\Framework\App\Filesystem\DirectoryList; use Magento\Framework\Config\File\ConfigFilePool; use Magento\Framework\Exception\FileSystemException; +use Magento\Framework\Exception\RuntimeException; use Magento\Framework\Filesystem\DriverPool; +use Magento\Framework\Phrase; /** * Deployment configuration reader. @@ -87,6 +89,7 @@ public function getFiles() * @param string $fileKey The file key (deprecated) * @return array * @throws FileSystemException If file can not be read + * @throws RuntimeException If file is invalid * @throws \Exception If file key is not correct * @see FileReader */ @@ -99,6 +102,9 @@ public function load($fileKey = null) $filePath = $path . '/' . $this->configFilePool->getPath($fileKey); if ($fileDriver->isExists($filePath)) { $result = include $filePath; + if (!is_array($result)) { + throw new RuntimeException(new Phrase("Invalid configuration file: '%1'", [$filePath])); + } } } else { $configFiles = $this->configFilePool->getPaths(); @@ -108,11 +114,14 @@ public function load($fileKey = null) $configFile = $path . '/' . $this->configFilePool->getPath($fileKey); if ($fileDriver->isExists($configFile)) { $fileData = include $configFile; + if (!is_array($fileData)) { + throw new RuntimeException(new Phrase("Invalid configuration file: '%1'", [$configFile])); + } } else { continue; } $allFilesData[$configFile] = $fileData; - if (is_array($fileData) && count($fileData) > 0) { + if ($fileData) { $result = array_replace_recursive($result, $fileData); } }