diff --git a/src/core/models/DatabasePDO.php b/src/core/models/DatabasePDO.php index e47f6c31a80b3ac35ea81f79bf5eeff31f055ebe..97f9320036034b40bd2aabae6ece27692d0f60d4 100755 --- a/src/core/models/DatabasePDO.php +++ b/src/core/models/DatabasePDO.php @@ -28,22 +28,27 @@ class DatabasePDO } if (!empty($args['configPath'])) { - $loadedXml = CoreConfigModel::getXmlLoaded(['path' => $args['configPath'] . '/config.xml']); + $loaderJson = CoreConfigModel::getJsonLoaded(['path' => $args['configPath'] . '/config.json']); } else { - $loadedXml = CoreConfigModel::getConfig(); + $loaderJson = CoreConfigModel::getConfig(); } - if (!$loadedXml) { + if (!$loaderJson) { throw new \Exception('Configuration file can not be read'); } - foreach ($loadedXml->database as $key => $database) { - $server = (string)$database->server; - $port = (string)$database->port; - $name = (string)$database->name; - $user = (string)$database->user; - $password = (string)$database->password; - self::$type = (string)$database->type; + $databases = array_filter($loaderJson, function($value, $key) { + return strpos($key, 'database') !== false; + }, ARRAY_FILTER_USE_BOTH); + + $count = 1; + foreach ($databases as $key => $database) { + $server = $database['server']; + $port = $database['port']; + $name = $database['name']; + $user = $database['user']; + $password = $database['password']; + self::$type = $database['type']; $formattedDriver = 'pgsql'; if (self::$type == 'POSTGRESQL') { @@ -79,7 +84,8 @@ class DatabasePDO self::$pdo = new \PDO($dsn, $user, $password, $options); break; } catch (\PDOException $PDOException) { - if (!empty($loadedXml->{$key.'1'})) { + if (!empty($loaderJson[$key . $count])) { + $count++; continue; } else { throw new \Exception($PDOException->getMessage());