Skip to content

Commit 6239dcc

Browse files
authored
MCLOUD-8420: ece-tools read driver_options configuration for DB connection (#81)
1 parent c5fe5af commit 6239dcc

File tree

6 files changed

+53
-3
lines changed

6 files changed

+53
-3
lines changed

src/DB/Connection.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,9 +218,7 @@ private function connect()
218218
),
219219
$connectionData->getUser(),
220220
$connectionData->getPassword(),
221-
[
222-
\PDO::ATTR_PERSISTENT => true,
223-
]
221+
[\PDO::ATTR_PERSISTENT => true] + $connectionData->getDriverOptions()
224222
);
225223
}
226224

src/DB/Data/Connection.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,12 @@ public function getPassword()
8080
{
8181
return $this->connectionData['password'] ?? '';
8282
}
83+
84+
/**
85+
* @inheritDoc
86+
*/
87+
public function getDriverOptions()
88+
{
89+
return $this->connectionData['driver_options'] ?? [];
90+
}
8391
}

src/DB/Data/ConnectionInterface.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,11 @@ public function getUser();
4646
* @return string|null
4747
*/
4848
public function getPassword();
49+
50+
/**
51+
* Returns driver options
52+
*
53+
* @return array
54+
*/
55+
public function getDriverOptions();
4956
}

src/DB/Data/RelationshipConnection.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,12 @@ public function getPassword()
6868
{
6969
return $this->connectionData['password'] ?? '';
7070
}
71+
72+
/**
73+
* @inheritDoc
74+
*/
75+
public function getDriverOptions()
76+
{
77+
return $this->connectionData['driver_options'] ?? [];
78+
}
7179
}

src/Test/Unit/DB/Data/ConnectionTest.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,24 @@ public function testGetOptions()
2323
'dbname' => 'dbName',
2424
'username' => 'user',
2525
'password' => '1234',
26+
'driver_options' => [
27+
'option1' => 'value1',
28+
'option2' => 'value2'
29+
],
2630
]);
2731

2832
$this->assertEquals('127.0.0.1', $relationshipConnection->getHost());
2933
$this->assertEquals('3306', $relationshipConnection->getPort());
3034
$this->assertEquals('dbName', $relationshipConnection->getDbName());
3135
$this->assertEquals('user', $relationshipConnection->getUser());
3236
$this->assertEquals('1234', $relationshipConnection->getPassword());
37+
$this->assertEquals(
38+
[
39+
'option1' => 'value1',
40+
'option2' => 'value2'
41+
],
42+
$relationshipConnection->getDriverOptions()
43+
);
3344
}
3445

3546
public function testGetOptionsWithEmptyPortAndPortInHost()
@@ -75,4 +86,10 @@ public function testGetOptionsWithEmptyPortAndSocketHost()
7586
$this->assertEquals('/tmp/mysql.sock', $relationshipConnection->getHost());
7687
$this->assertEquals('', $relationshipConnection->getPort());
7788
}
89+
90+
public function testGetDriverOptionsEmpty()
91+
{
92+
$relationshipConnection = new Connection([]);
93+
$this->assertEquals([], $relationshipConnection->getDriverOptions());
94+
}
7895
}

src/Test/Unit/DB/Data/RelationshipConnectionTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,24 @@ public function testGetOptions()
2323
'path' => 'dbName',
2424
'username' => 'user',
2525
'password' => '1234',
26+
'driver_options' => [
27+
'option1' => 'value1',
28+
'option2' => 'value2'
29+
],
2630
]);
2731

2832
$this->assertEquals('127.0.0.1', $relationshipConnection->getHost());
2933
$this->assertEquals('3306', $relationshipConnection->getPort());
3034
$this->assertEquals('dbName', $relationshipConnection->getDbName());
3135
$this->assertEquals('user', $relationshipConnection->getUser());
3236
$this->assertEquals('1234', $relationshipConnection->getPassword());
37+
$this->assertEquals(
38+
[
39+
'option1' => 'value1',
40+
'option2' => 'value2'
41+
],
42+
$relationshipConnection->getDriverOptions()
43+
);
3344
}
3445

3546
public function testGetEmptyOptions()
@@ -41,5 +52,6 @@ public function testGetEmptyOptions()
4152
$this->assertEmpty($relationshipConnection->getDbName());
4253
$this->assertEmpty($relationshipConnection->getUser());
4354
$this->assertEmpty($relationshipConnection->getPassword());
55+
$this->assertEquals([], $relationshipConnection->getDriverOptions());
4456
}
4557
}

0 commit comments

Comments
 (0)