protected function setMandatorySettings(array $settings): void
    {
        $props = ['engine', 'host', 'user', 'password', 'database'];
        foreach ($props as $prop) {
            if (!isset($settings[$prop]) || !\is_string($settings[$prop])) {
                throw new DatabaseException('"' . $prop . '" settings is not defined or not a string');
            }

            $this->{'set' . \ucfirst($prop)}($settings[$prop]);
        }
    }
protected function setMandatorySettings(array $settings): void
    {
        $props = ['engine', 'host', 'user', 'password', 'database'];
        foreach ($props as $prop) {
            if (!isset($settings[$prop]) || !\is_string($settings[$prop])) {
                throw new DatabaseException('"' . $prop . '" settings is not defined or not a string');
            }

            $this->{'set' . \ucfirst($prop)}($settings[$prop]);
        }
    }
@param array $settings

@throws DatabaseException