summaryrefslogtreecommitdiffstats
path: root/vendor/ipl/sql/src/Config.php
blob: df32fde161ab4f5fb756c16c32ba065f2eadcca9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php

namespace ipl\Sql;

use InvalidArgumentException;

use function ipl\Stdlib\get_php_type;

/**
 * SQL connection configuration
 */
class Config
{
    /**
     * Create a new SQL connection configuration from the given configuration key-value pairs
     *
     * @param iterable $config Configuration key-value pairs
     *
     * @throws InvalidArgumentException If $config is not iterable
     */
    public function __construct($config)
    {
        if (! is_iterable($config)) {
            throw new InvalidArgumentException(sprintf(
                '%s expects parameter one to be iterable, got %s instead',
                __METHOD__,
                get_php_type($config)
            ));
        }

        foreach ($config as $key => $value) {
            $this->$key = $value;
        }
    }

    /** @var string Type of the DBMS */
    public $db;

    /** @var string Database host */
    public $host;

    /** @var int Database port */
    public $port;

    /** @var string Database name */
    public $dbname;

    /** @var string Username to use for authentication */
    public $username;

    /** @var string Password to use for authentication */
    public $password;

    /**
     * Character set for the connection
     *
     * If you want to use the default charset as configured by the database, don't set this property.
     *
     * @var string
     */
    public $charset;

    /**
     * PDO connect options
     *
     * Array of key-value pairs that should be set when calling {@link Connection::connect()} in order to establish a DB
     * connection.
     *
     * @var array
     */
    public $options;
}