public function doDatabaseCheck()
{
$cfg = $this->config->app['config']->get('general/database');
$driver = $cfg['driver'];
if ($driver === 'pdo_sqlite') {
return $this->doDatabaseSqliteCheck($cfg);
}
if (!in_array($driver, ['pdo_mysql', 'pdo_pgsql'])) {
return $this->getExceptionController()->databaseDriver('unsupported', null, $driver);
}
if ($driver == 'pdo_mysql' && !$this->mysqlLoaded) {
return $this->getExceptionController()->databaseDriver('missing', 'MySQL', 'pdo_mysql');
}
if ($driver == 'pdo_pgsql' && !$this->postgresLoaded) {
return $this->getExceptionController()->databaseDriver('missing', 'PostgreSQL', 'pdo_pgsql');
}
if (empty($cfg['dbname'])) {
return $this->getExceptionController()->databaseDriver('parameter', null, $driver, 'databasename');
}
if (empty($cfg['user'])) {
return $this->getExceptionController()->databaseDriver('parameter', null, $driver, 'username');
}
if (empty($cfg['password']) && $cfg['user'] === 'root') {
return $this->getExceptionController()->databaseDriver('insecure', null, $driver);
}
return null;
}