15
15
*
16
16
* - MEMCACHE_HOST
17
17
* - REDIS_URIS - a comma separated list of redis:// URIs.
18
- * - MYSQL_DSN, MYSQL_USER
19
- * - PGSQL_DSN, PGSQL_USER
18
+ * - MYSQL_DSN, MYSQL_USER, MYSQL_PASSWORD
19
+ * - PGSQL_DSN, PGSQL_USER, PGSQL_PASSWORD
20
20
*
21
21
* @author Markus Malkusch <[email protected] >
22
22
* @link bitcoin:1P5FAZ4QhXCuwYPnLZdk3PJsqePbu1UDDA Donations
@@ -49,13 +49,14 @@ public static function tearDownAfterClass(): void
49
49
*
50
50
* @param string $dsn The DSN.
51
51
* @param string $user The user.
52
+ * @param string $password The password.
52
53
*
53
54
* @return \PDO The PDO.
54
55
*/
55
- private function getPDO (string $ dsn , string $ user ): \PDO
56
+ private function getPDO (string $ dsn , string $ user, string $ password ): \PDO
56
57
{
57
58
if ($ this ->pdo === null ) {
58
- $ this ->pdo = new \PDO ($ dsn , $ user );
59
+ $ this ->pdo = new \PDO ($ dsn , $ user, $ password );
59
60
$ this ->pdo ->setAttribute (\PDO ::ATTR_ERRMODE , \PDO ::ERRMODE_EXCEPTION );
60
61
}
61
62
@@ -133,8 +134,8 @@ function (int $increment) use ($filename): int {
133
134
];
134
135
}, $ this ->provideMutexFactories ());
135
136
136
- $ addPDO = function ($ dsn , $ user , $ vendor ) use (&$ cases ) {
137
- $ pdo = $ this ->getPDO ($ dsn , $ user );
137
+ $ addPDO = function ($ dsn , $ user , $ password , $ vendor ) use (&$ cases ) {
138
+ $ pdo = $ this ->getPDO ($ dsn , $ user, $ password );
138
139
139
140
$ options = ['mysql ' => 'engine=InnoDB ' ];
140
141
$ option = $ options [$ vendor ] ?? '' ;
@@ -148,12 +149,12 @@ function (int $increment) use ($filename): int {
148
149
$ this ->pdo = null ;
149
150
150
151
$ cases [$ vendor ] = [
151
- function ($ increment ) use ($ dsn , $ user ) {
152
+ function ($ increment ) use ($ dsn , $ user, $ password ) {
152
153
// This prevents using a closed connection from a child.
153
154
if ($ increment == 0 ) {
154
155
$ this ->pdo = null ;
155
156
}
156
- $ pdo = $ this ->getPDO ($ dsn , $ user );
157
+ $ pdo = $ this ->getPDO ($ dsn , $ user, $ password );
157
158
$ id = 1 ;
158
159
$ select = $ pdo ->prepare ('SELECT counter FROM counter WHERE id = ? FOR UPDATE ' );
159
160
$ select ->execute ([$ id ]);
@@ -166,9 +167,9 @@ function ($increment) use ($dsn, $user) {
166
167
167
168
return $ counter ;
168
169
},
169
- function ($ timeout = 3 ) use ($ dsn , $ user ) {
170
+ function ($ timeout = 3 ) use ($ dsn , $ user, $ password ) {
170
171
$ this ->pdo = null ;
171
- $ pdo = $ this ->getPDO ($ dsn , $ user );
172
+ $ pdo = $ this ->getPDO ($ dsn , $ user, $ password );
172
173
173
174
return new TransactionalMutex ($ pdo , $ timeout );
174
175
}
@@ -178,13 +179,15 @@ function ($timeout = 3) use ($dsn, $user) {
178
179
if (getenv ('MYSQL_DSN ' )) {
179
180
$ dsn = getenv ('MYSQL_DSN ' );
180
181
$ user = getenv ('MYSQL_USER ' );
181
- $ addPDO ($ dsn , $ user , 'mysql ' );
182
+ $ password = getenv ('MYSQL_PASSWORD ' );
183
+ $ addPDO ($ dsn , $ user , $ password , 'mysql ' );
182
184
}
183
185
184
186
if (getenv ('PGSQL_DSN ' )) {
185
187
$ dsn = getenv ('PGSQL_DSN ' );
186
188
$ user = getenv ('PGSQL_USER ' );
187
- $ addPDO ($ dsn , $ user , 'postgres ' );
189
+ $ password = getenv ('PGSQL_PASSWORD ' );
190
+ $ addPDO ($ dsn , $ user , $ password , 'postgres ' );
188
191
}
189
192
190
193
return $ cases ;
@@ -306,7 +309,7 @@ function (string $uri): Redis {
306
309
307
310
if (getenv ('MYSQL_DSN ' )) {
308
311
$ cases ['MySQLMutex ' ] = [function ($ timeout = 3 ): Mutex {
309
- $ pdo = new \PDO (getenv ('MYSQL_DSN ' ), getenv ('MYSQL_USER ' ));
312
+ $ pdo = new \PDO (getenv ('MYSQL_DSN ' ), getenv ('MYSQL_USER ' ), getenv ( ' MYSQL_USER ' ) );
310
313
$ pdo ->setAttribute (\PDO ::ATTR_ERRMODE , \PDO ::ERRMODE_EXCEPTION );
311
314
312
315
return new MySQLMutex ($ pdo , 'test ' , $ timeout );
@@ -315,7 +318,7 @@ function (string $uri): Redis {
315
318
316
319
if (getenv ('PGSQL_DSN ' )) {
317
320
$ cases ['PgAdvisoryLockMutex ' ] = [function (): Mutex {
318
- $ pdo = new \PDO (getenv ('PGSQL_DSN ' ), getenv ('PGSQL_USER ' ));
321
+ $ pdo = new \PDO (getenv ('PGSQL_DSN ' ), getenv ('PGSQL_USER ' ), getenv ( ' PGSQL_PASSWORD ' ) );
319
322
$ pdo ->setAttribute (\PDO ::ATTR_ERRMODE , \PDO ::ERRMODE_EXCEPTION );
320
323
321
324
return new PgAdvisoryLockMutex ($ pdo , 'test ' );
0 commit comments