From 851eb624b2cb610140c3267262502a41ba58e20d Mon Sep 17 00:00:00 2001 From: Rafa Couto Date: Fri, 8 Jul 2022 19:53:19 +0200 Subject: [PATCH 1/2] New MySQLPDOLock class on NinjaMutex and MySQL driver with options --- composer.json | 2 +- src/Mutex.php | 11 +++++++---- tests/MutexTest.php | 11 +++++++---- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/composer.json b/composer.json index b77b59a..958f2e4 100644 --- a/composer.json +++ b/composer.json @@ -13,7 +13,7 @@ }], "require": { "php": "^8.0.2", - "arvenil/ninja-mutex": "^0.6", + "arvenil/ninja-mutex": "dev-master#82cbb2c", "illuminate/console": "^9.0", "illuminate/support": "^9.0", "ramsey/collection": "^1.2" diff --git a/src/Mutex.php b/src/Mutex.php index 150535d..38ce8ee 100644 --- a/src/Mutex.php +++ b/src/Mutex.php @@ -8,7 +8,7 @@ use NinjaMutex\Lock\FlockLock; use NinjaMutex\Lock\LockAbstract; use NinjaMutex\Lock\MemcachedLock; -use NinjaMutex\Lock\MySqlLock; +use NinjaMutex\Lock\MySQLPDOLock; use NinjaMutex\Lock\PhpRedisLock; use NinjaMutex\Lock\PredisRedisLock; use NinjaMutex\Mutex as NinjaMutex; @@ -58,11 +58,14 @@ public function getNinjaMutexLock(): LockAbstract $strategy = $this->command->getMutexStrategy(); switch ($strategy) { case 'mysql': - return new MySqlLock( + return new MySQLPDOLock( + 'mysql:' . implode(';', [ + "host=" . config('database.connections.mysql.host'), + "port=" . config('database.connections.mysql.port', 3306), + ]), config('database.connections.mysql.username'), config('database.connections.mysql.password'), - config('database.connections.mysql.host'), - config('database.connections.mysql.port', 3306) + config('database.connections.mysql.options') ); case 'redis': diff --git a/tests/MutexTest.php b/tests/MutexTest.php index 7924223..a982f3e 100644 --- a/tests/MutexTest.php +++ b/tests/MutexTest.php @@ -10,7 +10,7 @@ use Mockery\Mock; use NinjaMutex\Lock\FlockLock; use NinjaMutex\Lock\MemcachedLock; -use NinjaMutex\Lock\MySqlLock; +use NinjaMutex\Lock\MySQLPDOLock; use NinjaMutex\Lock\PhpRedisLock; use NinjaMutex\Lock\PredisRedisLock; use Predis\Client as PredisClient; @@ -65,11 +65,14 @@ public function it_supports_mysql_strategy() $this->command->expects('getMutexStrategy')->andReturn('mysql'); $mutex = new Mutex($this->command); - $expectedLock = new MySqlLock( + $expectedLock = new MySqlPdoLock( + 'mysql:' . implode(';', [ + "host=" . config('database.connections.mysql.host'), + "port=" . config('database.connections.mysql.port', 3306), + ]), config('database.connections.mysql.username'), config('database.connections.mysql.password'), - config('database.connections.mysql.host'), - config('database.connections.mysql.port', 3306) + config('database.connections.mysql.options') ); $this->assertEquals($expectedLock, $mutex->getNinjaMutexLock()); } From e2daa2c17664e252cc72e2b6ce51ec925d35dc95 Mon Sep 17 00:00:00 2001 From: Rafa Couto Date: Fri, 8 Jul 2022 20:18:44 +0200 Subject: [PATCH 2/2] Compliance with styleci --- src/Mutex.php | 4 ++-- tests/MutexTest.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Mutex.php b/src/Mutex.php index 38ce8ee..9da07cd 100644 --- a/src/Mutex.php +++ b/src/Mutex.php @@ -60,8 +60,8 @@ public function getNinjaMutexLock(): LockAbstract case 'mysql': return new MySQLPDOLock( 'mysql:' . implode(';', [ - "host=" . config('database.connections.mysql.host'), - "port=" . config('database.connections.mysql.port', 3306), + 'host=' . config('database.connections.mysql.host'), + 'port=' . config('database.connections.mysql.port', 3306), ]), config('database.connections.mysql.username'), config('database.connections.mysql.password'), diff --git a/tests/MutexTest.php b/tests/MutexTest.php index a982f3e..29b6b1a 100644 --- a/tests/MutexTest.php +++ b/tests/MutexTest.php @@ -67,8 +67,8 @@ public function it_supports_mysql_strategy() $mutex = new Mutex($this->command); $expectedLock = new MySqlPdoLock( 'mysql:' . implode(';', [ - "host=" . config('database.connections.mysql.host'), - "port=" . config('database.connections.mysql.port', 3306), + 'host=' . config('database.connections.mysql.host'), + 'port=' . config('database.connections.mysql.port', 3306), ]), config('database.connections.mysql.username'), config('database.connections.mysql.password'),