/** * Perform the check for the database folder. We do this seperately, because it can only * be done _after_ the other checks, since we need to have the $config, to see if we even * _need_ to do this check. */ public function doDatabaseCheck() { $cfg = $this->config->app['config']->get('general/database'); $driver = $cfg['driver']; if ($driver == 'pdo_sqlite') { $this->doDatabaseSqliteCheck($cfg); return; } if (!in_array($driver, ['pdo_mysql', 'pdo_pgsql'])) { throw LowLevelDatabaseException::unsupportedDriver($driver); } if ($driver == 'pdo_mysql' && !$this->mysqlLoaded) { throw LowLevelDatabaseException::missingDriver('MySQL', 'pdo_mysql'); } elseif ($driver == 'pdo_pgsql' && !$this->postgresLoaded) { throw LowLevelDatabaseException::missingDriver('PostgreSQL', 'pdo_pgsql'); } if (empty($cfg['dbname'])) { throw LowLevelDatabaseException::missingParameter('databasename'); } if (empty($cfg['user'])) { throw LowLevelDatabaseException::missingParameter('username'); } if (empty($cfg['password']) && $cfg['user'] === 'root') { throw LowLevelDatabaseException::unsecure(); } }