Skip to content

Commit 715c5c7

Browse files
committed
Rewrite locker API
1 parent acd390d commit 715c5c7

File tree

3 files changed

+9
-43
lines changed

3 files changed

+9
-43
lines changed

README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@ composer require cybercog/php-db-locker
3434
```php
3535
$dbConnection = new PDO($dsn, $username, $password);
3636

37-
$postgresLocker = new \Cog\DbLocker\Locker\PostgresAdvisoryLocker();
38-
$postgresLockId = \Cog\DbLocker\LockId\PostgresLockId::fromKeyValue('user', '4');
37+
$locker = new \Cog\DbLocker\Locker\PostgresAdvisoryLocker();
38+
$lockId = \Cog\DbLocker\LockId\PostgresLockId::fromKeyValue('user', '4');
3939

4040
$dbConnection->beginTransaction();
41-
$isLockAcquired = $postgresLocker->acquireTransactionLevelLock(
41+
$isLockAcquired = $locker->acquireTransactionLevelLock(
4242
$dbConnection,
43-
$postgresLockId,
43+
$lockId,
4444
\Cog\DbLocker\Locker\PostgresAdvisoryLockLevelEnum::Transaction,
4545
\Cog\DbLocker\Locker\PostgresAdvisoryLockTypeEnum::NonBlocking,
4646
\Cog\DbLocker\Locker\PostgresLockModeEnum::Exclusive,
@@ -58,12 +58,12 @@ $dbConnection->commit();
5858
```php
5959
$dbConnection = new PDO($dsn, $username, $password);
6060

61-
$postgresLocker = new \Cog\DbLocker\Locker\PostgresAdvisoryLocker();
62-
$postgresLockId = \Cog\DbLocker\LockId\PostgresLockId::fromKeyValue('user', '4');
61+
$locker = new \Cog\DbLocker\Locker\PostgresAdvisoryLocker();
62+
$lockId = \Cog\DbLocker\LockId\PostgresLockId::fromKeyValue('user', '4');
6363

64-
$isLockAcquired = $postgresLocker->acquireSessionLevelLock(
64+
$isLockAcquired = $locker->acquireSessionLevelLock(
6565
$dbConnection,
66-
$postgresLockId,
66+
$lockId,
6767
\Cog\DbLocker\Locker\PostgresAdvisoryLockLevelEnum::Session,
6868
\Cog\DbLocker\Locker\PostgresAdvisoryLockTypeEnum::NonBlocking,
6969
\Cog\DbLocker\Locker\PostgresLockModeEnum::Exclusive,
@@ -73,7 +73,7 @@ if ($isLockAcquired) {
7373
} else {
7474
// Execute logic if lock acquisition has been failed
7575
}
76-
$postgresLocker->releaseSessionLevelLock($dbConnection, $postgresLockId);
76+
$locker->releaseSessionLevelLock($dbConnection, $lockId);
7777
```
7878

7979
## Changelog

src/Locker/PostgresAdvisoryLocker.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,7 @@ public function releaseSessionLevelLock(
9292
*/
9393
public function releaseAllSessionLevelLocks(
9494
PDO $dbConnection,
95-
PostgresAdvisoryLockLevelEnum $level = PostgresAdvisoryLockLevelEnum::Session,
9695
): void {
97-
if ($level === PostgresAdvisoryLockLevelEnum::Transaction) {
98-
throw new \InvalidArgumentException('Transaction-level advisory lock cannot be released');
99-
}
100-
10196
$statement = $dbConnection->prepare(
10297
<<<'SQL'
10398
SELECT PG_ADVISORY_UNLOCK_ALL();

test/Integration/Locker/PostgresAdvisoryLockerTest.php

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -597,35 +597,6 @@ public function testItCannotReleaseLockWithTransactionScope(): void
597597
}
598598
}
599599

600-
public function testItCannotReleaseAllLocksWithTransactionScope(): void
601-
{
602-
$locker = $this->initLocker();
603-
$dbConnection = $this->initPostgresPdoConnection();
604-
$postgresLockId1 = PostgresLockId::fromKeyValue('test');
605-
$postgresLockId2 = PostgresLockId::fromKeyValue('test2');
606-
$locker->acquireSessionLevelLock(
607-
$dbConnection,
608-
$postgresLockId1,
609-
);
610-
$dbConnection->beginTransaction();
611-
$locker->acquireTransactionLevelLock(
612-
$dbConnection,
613-
$postgresLockId2,
614-
);
615-
616-
try {
617-
$locker->releaseAllSessionLevelLocks(
618-
$dbConnection,
619-
PostgresAdvisoryLockLevelEnum::Transaction,
620-
);
621-
} catch (\InvalidArgumentException $exception) {
622-
$this->assertSame(
623-
'Transaction-level advisory lock cannot be released',
624-
$exception->getMessage(),
625-
);
626-
}
627-
}
628-
629600
private function initLocker(): PostgresAdvisoryLocker
630601
{
631602
return new PostgresAdvisoryLocker();

0 commit comments

Comments
 (0)