public function check(ExceptionControllerInterface $exceptionController)
{
/** @var Controller\Exception $exceptionController */
$dbConfig = $this->config->get('general/database');
$driver = $dbConfig['driver'];
if ($driver === 'pdo_sqlite') {
return $this->doDatabaseSqliteCheck($exceptionController, $dbConfig);
}
if (!in_array($driver, ['pdo_mysql', 'pdo_pgsql'])) {
return $exceptionController->databaseDriver('unsupported', null, $driver);
}
if ($driver === 'pdo_mysql' && extension_loaded('pdo_mysql') === false) {
return $exceptionController->databaseDriver('missing', 'MySQL', 'pdo_mysql');
}
if ($driver === 'pdo_pgsql' && extension_loaded('pdo_pgsql') === false) {
return $exceptionController->databaseDriver('missing', 'PostgreSQL', 'pdo_pgsql');
}
if (empty($dbConfig['dbname'])) {
return $exceptionController->databaseDriver('parameter', null, $driver, 'databasename');
}
if (empty($dbConfig['user'])) {
return $exceptionController->databaseDriver('parameter', null, $driver, 'username');
}
if (empty($dbConfig['password']) && $dbConfig['user'] === 'root') {
return $exceptionController->databaseDriver('insecure', null, $driver);
}
return null;
}