5 * Verify that the database parameters are well-formed.
8 if (!defined('CIVI_SETUP')) {
9 exit("Installation plugins must only be loaded by the installer.\n");
12 \Civi\Setup
::dispatcher()
13 ->addListener('civi.setup.checkRequirements', function (\Civi\Setup\Event\CheckRequirementsEvent
$e) {
14 \Civi\Setup
::log()->info(sprintf('[%s] Handle %s', basename(__FILE__
), 'checkRequirements'));
16 $dbFields = array('db', 'cmsDb');
17 foreach ($dbFields as $dbField) {
19 $db = $e->getModel()->{$dbField};
21 $keys = array_keys($db);
23 $expectedKeys = array('server', 'username', 'password', 'database');
25 if ($keys !== $expectedKeys) {
26 $e->addError('database', $dbField, sprintf("The database credentials for \"%s\" should be specified as (%s) not (%s)",
28 implode(',', $expectedKeys),
34 foreach ($db as $k => $v) {
35 if ($k === 'password' && empty($v)) {
36 $e->addWarning('database', "$dbField.$k", "The property \"$dbField.$k\" is blank. This may be correct in some controlled environments; it could also be a mistake or a symptom of an insecure configuration.");
38 elseif (!is_scalar($v)) {
39 $e->addError('database', "$dbField.$k", "The property \"$dbField.$k\" is not well-formed.");
45 $e->addInfo('database', $dbField, "The database credentials for \"$dbField\" are well-formed.");