Test Failed
Push — CI ( 02428e...3e0292 )
by Adam
55:43
created

DatabaseChecker::checkDatabaseConnection()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 9
rs 9.6666
cc 2
eloc 4
nc 2
nop 0
1
<?php
2
/**
3
 * Created by Adam Jakab.
4
 * Date: 09/03/16
5
 * Time: 8.54
6
 */
7
8
namespace SuiteCrm\Install;
9
10
11
class DatabaseChecker {
12
13
    /**
14
     * Run database checks prior to installation
15
     * @throws \Exception
16
     */
17
    public static function runChecks() {
18
        self::checkSessionData();
19
        self::checkDatabaseConnection();
20
    }
21
22
    /**
23
     * @throws \Exception
24
     */
25
    protected static function checkDatabaseConnection() {
26
        $db = getInstallDbInstance();
27
28
        if (!$db->isDatabaseNameValid($_SESSION['setup_db_database_name'])) {
29
            throw new \Exception('Invalid database name("'.$_SESSION['setup_db_database_name'].'") was supplied!');
30
        }
31
32
33
    }
34
35
    /**
36
     * Work out some configuration values
37
     * @throws \Exception
38
     */
39
    protected static function checkSessionData() {
40
        if(empty(trim($_SESSION['setup_db_database_name']))){
41
            throw new \Exception('No database name was supplied!');
42
        }
43
44
        if($_SESSION['setup_db_type'] != 'oci8') {
45
            // Oracle doesn't need host name, others do
46
            if(empty(trim($_SESSION['setup_db_host_name']))){
47
                throw new \Exception('No database hostname name was supplied!');
48
            }
49
        }
50
51
        if(isset($_SESSION['setup_db_type']) && (!isset($_SESSION['setup_db_manager']) || empty($_SESSION['setup_db_manager']))) {
52
            $_SESSION['setup_db_manager'] = \DBManagerFactory::getManagerByType($_SESSION['setup_db_type']);
53
        }
54
    }
55
56
}