Skip to content

Commit d923a76

Browse files
Изменен подход к конфигурированию параметров класса
1 parent 379329d commit d923a76

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

src/Database.php

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,36 @@ class Database implements interfaces\DatabaseInterface {
3333
* @var PDOStatement Подготовленный запрос
3434
*/
3535
protected PDOStatement $pdoStatement;
36+
/**
37+
* @var array Настройки подключения
38+
*/
39+
protected array $settings;
40+
41+
/**
42+
* Database constructor.
43+
*
44+
* @param array $databaseConnectionParams Параметры соединения
45+
*/
46+
public function __construct(array $databaseConnectionParams) {
47+
$this->settings = $databaseConnectionParams;
48+
}
3649

3750
/**
3851
* @inheritDoc
3952
*/
4053
public function connect(array $databaseConnectionParams = []): void {
41-
$dsn = "{$databaseConnectionParams['dbms']}:";
54+
$connectionParams = array_merge($this->settings, $databaseConnectionParams);
55+
$dsn = "{$connectionParams['dbms']}:";
4256

4357
foreach (['host', 'dbname'] as $key) {
44-
$dsn .= "{$key}={$databaseConnectionParams[$key]};";
58+
$dsn .= "{$key}={$connectionParams[$key]};";
4559
}
4660

47-
$charset = array_key_exists('charset', $databaseConnectionParams) ? strtoupper($databaseConnectionParams['charset']) : 'UTF8';
61+
$charset = array_key_exists('charset', $connectionParams) ? strtoupper($connectionParams['charset']) : 'UTF8';
4862
$this->pdo = new PDO(
4963
$dsn,
50-
$databaseConnectionParams['user'],
51-
$databaseConnectionParams['password']
64+
$connectionParams['user'],
65+
$connectionParams['password']
5266
);
5367
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
5468
$this->pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);

0 commit comments

Comments
 (0)