From cc688fa3ce05fc61a6aec9362b4b824ac3b30c36 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Tue, 4 Jul 2017 19:48:53 +0200 Subject: [PATCH] Implemented method to deserialize customizable config --- .../CLI/src/Model/CustomizableAppConfig.php | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/module/CLI/src/Model/CustomizableAppConfig.php b/module/CLI/src/Model/CustomizableAppConfig.php index b1964979..4b7043c0 100644 --- a/module/CLI/src/Model/CustomizableAppConfig.php +++ b/module/CLI/src/Model/CustomizableAppConfig.php @@ -134,7 +134,50 @@ final class CustomizableAppConfig implements ArraySerializableInterface */ public function exchangeArray(array $array) { + if (isset($array['app_options'], $array['app_options']['secret_key'])) { + $this->setApp([ + 'SECRET' => $array['app_options']['secret_key'], + ]); + } + if (isset($array['entity_manager'], $array['entity_manager']['connection'])) { + $this->deserializeDatabase($array['entity_manager']['connection']); + } + + if (isset($array['translator'], $array['translator']['locale'], $array['cli'], $array['cli']['locale'])) { + $this->setLanguage([ + 'DEFAULT' => $array['translator']['locale'], + 'CLI' => $array['cli']['locale'], + ]); + } + + if (isset($array['url_shortener'])) { + $urlShortener = $array['url_shortener']; + $this->setUrlShortener([ + 'SCHEMA' => $urlShortener['domain']['schema'], + 'HOSTNAME' => $urlShortener['domain']['hostname'], + 'CHARS' => $urlShortener['shortcode_chars'], + ]); + } + } + + private function deserializeDatabase(array $conn) + { + if (! isset($conn['driver'])) { + return; + } + $driver = $conn['driver']; + + $params = ['DRIVER' => $driver]; + if ($driver !== 'pdo_sqlite') { + $params['USER'] = $conn['user']; + $params['PASSWORD'] = $conn['password']; + $params['NAME'] = $conn['dbname']; + $params['HOST'] = $conn['host']; + $params['PORT'] = $conn['port']; + } + + $this->setDatabase($params); } /**