settings = $settings; } public function load() { foreach ($this->settings->databases as $name => $settings) { $engine = $this->getEngine($settings); $configs = ['connection_string' => $engine->dsn()]; if ($engine->hasLogin()) { $configs['username'] = $settings->user->name; $configs['password'] = $settings->user->password; } Model::configure($configs, null, $name); } if (isset($this->settings->short_names)) { Model::$short_table_names = $this->settings->short_names; } } protected function getEngine($settings): \ProVM\Common\Define\Engine { $name = match($settings->engine) { 'mysql' => 'MySQL' }; $class = implode("\\", [ 'ProVM', 'Database', $name ]); return new $class($settings->host->name, $settings->name, $settings->host->port ?? null); } }