@@ -33,22 +33,36 @@ class Database implements interfaces\DatabaseInterface {
33
33
* @var PDOStatement Подготовленный запрос
34
34
*/
35
35
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
+ }
36
49
37
50
/**
38
51
* @inheritDoc
39
52
*/
40
53
public function connect (array $ databaseConnectionParams = []): void {
41
- $ dsn = "{$ databaseConnectionParams ['dbms ' ]}: " ;
54
+ $ connectionParams = array_merge ($ this ->settings , $ databaseConnectionParams );
55
+ $ dsn = "{$ connectionParams ['dbms ' ]}: " ;
42
56
43
57
foreach (['host ' , 'dbname ' ] as $ key ) {
44
- $ dsn .= "{$ key }= {$ databaseConnectionParams [$ key ]}; " ;
58
+ $ dsn .= "{$ key }= {$ connectionParams [$ key ]}; " ;
45
59
}
46
60
47
- $ charset = array_key_exists ('charset ' , $ databaseConnectionParams ) ? strtoupper ($ databaseConnectionParams ['charset ' ]) : 'UTF8 ' ;
61
+ $ charset = array_key_exists ('charset ' , $ connectionParams ) ? strtoupper ($ connectionParams ['charset ' ]) : 'UTF8 ' ;
48
62
$ this ->pdo = new PDO (
49
63
$ dsn ,
50
- $ databaseConnectionParams ['user ' ],
51
- $ databaseConnectionParams ['password ' ]
64
+ $ connectionParams ['user ' ],
65
+ $ connectionParams ['password ' ]
52
66
);
53
67
$ this ->pdo ->setAttribute (PDO ::ATTR_ERRMODE , PDO ::ERRMODE_EXCEPTION );
54
68
$ this ->pdo ->setAttribute (PDO ::ATTR_EMULATE_PREPARES , true );
0 commit comments