1
0
Files
breadcrumb-the-shire/lib/Repository/Support/DatabaseSessionRepositoryInterface.php

25 lines
643 B
PHP
Raw Normal View History

2026-03-05 08:26:51 +01:00
<?php
namespace MintyPHP\Repository\Support;
/** Contract for database-level session control: advisory locks and transaction management. */
2026-03-05 08:26:51 +01:00
interface DatabaseSessionRepositoryInterface
{
public function acquireAdvisoryLock(string $lockName, int $timeoutSeconds = 0): bool;
public function releaseAdvisoryLock(string $lockName): void;
public function beginTransaction(): void;
public function commitTransaction(): void;
public function rollbackTransaction(): void;
/**
* @template T
* @param callable(): T $callback
* @return T
*/
public function transaction(callable $callback): mixed;
2026-03-05 08:26:51 +01:00
}