public function check($config)
{
$status = 'no-connection';
$message = '';
try {
try {
if (!$this->config) {
foreach ($config as $name => $values) {
if ($module = $this->app->module($name)) {
$module->config = Arr::merge($module->config, $values);
}
}
}
$this->app->db()->connect();
if ($this->app->db()->getUtility()->tableExists('@system_config')) {
$status = 'tables-exist';
$message = __('Existing Pagekit installation detected. Choose different table prefix?');
} else {
$status = 'no-tables';
}
} catch (ConnectionException $e) {
if ($e->getPrevious()->getCode() == 1049) {
$this->createDatabase();
$status = 'no-tables';
} else {
throw $e;
}
}
} catch (\Exception $e) {
$message = __('Database connection failed!');
if ($e->getCode() == 1045) {
$message = __('Database access denied!');
}
}
return ['status' => $status, 'message' => $message];
}