default = $default; $this->databases = $databases; } protected function getEngines() { $dir = implode(DIRECTORY_SEPARATOR, [dirname(dirname(__DIR__)), 'src']); $files = new \DirectoryIterator($dir); $engines = []; foreach ($files as $file) { if ($file->isDir() or $file->getExtension() != 'php') { continue; } $engine = $file->getBasename('.' . $file->getExtension()); $name = str_replace('requirements', '', strtolower($engine)); $engines[$name] = $engine; } return $engines; } public function config() { $engines = $this->getEngines(); foreach ($this->databases as $name => $database) { if ($name == $this->default) { $name = ORM::DEFAULT_CONNECTION; } $engine = $database->engine; $requirements = implode("\\", ['Aldarien', 'Models', $engines[strtolower($engine)]]); $requirements = new $requirements(); $dsn = $requirements->getDSN($database); ORM::configure($dsn, null, $name); if ($requirements->hasUser()) { ORM::configure('username', $database->user->name, $name); ORM::configure('password', $database->user->password, $name); } } if (isset($this->databases->short_table_names)) { Model::$short_table_names = $this->databases->short_table_names; } } }