cybercog / php-db-locker
PHP application-level database locking mechanisms
Fund package maintenance!
paypal.me/antonkomarev
Requires
- php: ^8.1
- ext-pdo: *
Requires (Dev)
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2025-08-04 06:28:44 UTC
README
Introduction
WARNING! This library is currently under development and may not be stable. Use in your services at your own risk.
PHP application-level database locking mechanisms to implement concurrency control patterns.
Supported drivers:
- Postgres — PostgreSQL Advisory Locks Documentation
Installation
Pull in the package through Composer.
composer require cybercog/php-db-locker
Usage
Postgres
Transaction-level advisory lock
$dbConnection = new PDO($dsn, $username, $password); $locker = new \Cog\DbLocker\Postgres\PostgresAdvisoryLocker(); $lockId = \Cog\DbLocker\Postgres\PostgresLockKey::create('user', '4'); $dbConnection->beginTransaction(); $lock = $locker->acquireSessionLevelLockHandler( $dbConnection, $lockId, \Cog\DbLocker\Postgres\Enum\PostgresLockWaitModeEnum::NonBlocking, \Cog\DbLocker\Postgres\Enum\PostgresLockAccessModeEnum::Exclusive, ); if ($lock->wasAcquired) { // Execute logic if lock was successful } else { // Execute logic if lock acquisition has been failed } $dbConnection->commit();
Session-level advisory lock
$dbConnection = new PDO($dsn, $username, $password); $locker = new \Cog\DbLocker\Postgres\PostgresAdvisoryLocker(); $lockId = \Cog\DbLocker\Postgres\PostgresLockKey::create('user', '4'); try { $lock = $locker->acquireSessionLevelLockHandler( $dbConnection, $lockId, \Cog\DbLocker\Postgres\Enum\PostgresLockWaitModeEnum::NonBlocking, \Cog\DbLocker\Postgres\Enum\PostgresLockAccessModeEnum::Exclusive, ); if ($lock->wasAcquired) { // Execute logic if lock was successful } else { // Execute logic if lock acquisition has been failed } } finally { $lock->release(); }
Changelog
Detailed changes for each release are documented in the CHANGELOG.md.
License
PHP DB Locker
package is open-sourced software licensed under the MIT license by Anton Komarev.
🌟 Stargazers over time
About CyberCog
CyberCog is a Social Unity of enthusiasts. Research the best solutions in product & software development is our passion.