$item) { // Beschreibung darf nicht leer sein; als Fallback den Datenbanknamen verwenden $description = !empty($item['description']) ? $item['description'] : $defaultConfig->WFdbname; // Cronjobs nur aktivieren, wenn Einstellung vorhanden und gesetzt (Default `false`). if (array_key_exists('cronjob',$item)) { $cronjobsActive = (int)$item['cronjob'] === 1; } else { $cronjobsActive = false; } if(!empty($item['dbname']) && $defaultConfig->WFdbname === $item['dbname']) { $item = []; } $dbhost = !empty($item['dbhost']) ? $item['dbhost'] : $defaultConfig->WFdbhost; $dbport = !empty($item['dbport']) ? $item['dbport'] : $defaultConfig->WFdbport; $dbname = !empty($item['dbname']) ? $item['dbname'] : $defaultConfig->WFdbname; $dbuser = !empty($item['dbuser']) ? $item['dbuser'] : $defaultConfig->WFdbuser; $dbpass = !empty($item['dbpass']) ? $item['dbpass'] : $defaultConfig->WFdbpass; $result[$key] = [ 'description' => $description, 'dbhost' => $dbhost, 'dbport' => $dbport, 'dbname' => $dbname, 'dbuser' => $dbuser, 'dbpass' => $dbpass, 'cronjob' => $cronjobsActive, ]; } return $result; } /** * Stellt sicher dass die Default-Config im MultiDbArray vorkommt * * @param Config $defaultConfig * @param array $multiDbArray * * @return array */ private static function includeDefaultConfig(Config $defaultConfig, $multiDbArray) { // Prüfen ob Default-Config in MultiDb-Array vorhanden ist foreach ($multiDbArray as $key => $item) { if ($item['dbhost'] === $defaultConfig->WFdbhost && $item['dbport'] === $defaultConfig->WFdbport && $item['dbname'] === $defaultConfig->WFdbname) { return $multiDbArray; // Default-Config ist bereits enthalten } } // Default-Config in MultiDb-Array anhängen $defaultDbName = $defaultConfig->WFdbname; $defaultConfigKey = !isset($multiDbArray[$defaultDbName]) ? $defaultDbName : '__default__'; $multiDbArray[$defaultConfigKey] = [ 'description' => $defaultConfig->WFdbname, 'dbhost' => $defaultConfig->WFdbhost, 'dbport' => $defaultConfig->WFdbport, 'dbname' => $defaultConfig->WFdbname, 'dbuser' => $defaultConfig->WFdbuser, 'dbpass' => $defaultConfig->WFdbpass, 'cronjob' => true, ]; return $multiDbArray; } /** * Ersetzt numerische Array-Schlüssel durch den Datenbanknamen * * @param array $multiDbArray * * @return array */ private static function prepareArrayKeys($multiDbArray) { $result = []; foreach ($multiDbArray as $key => $item) { if (is_numeric($key)) { $dbname = $item['dbname']; if (!isset($multiDbArray[$dbname])) { $key = $dbname; } } $result[$key] = $item; } return $result; } }