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..9da07cd 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..29b6b1a 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()); }