Files
michaelschiemer/src/Framework/Filesystem/LockableStorage.php
Michael Schiemer 55a330b223 Enable Discovery debug logging for production troubleshooting
- Add DISCOVERY_LOG_LEVEL=debug
- Add DISCOVERY_SHOW_PROGRESS=true
- Temporary changes for debugging InitializerProcessor fixes on production
2025-08-11 20:13:26 +02:00

45 lines
1.0 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Framework\Filesystem;
/**
* Interface für File-Locking Storage-Operationen
*
* Ermöglicht exklusiven Zugriff auf Dateien für kritische Operationen.
* Verhindert Data Corruption bei Concurrent Access.
*/
interface LockableStorage
{
/**
* Führt Operation mit exklusivem File-Lock aus
*/
public function withExclusiveLock(string $path, callable $operation): mixed;
/**
* Führt Operation mit Shared-Lock (Read-Lock) aus
*/
public function withSharedLock(string $path, callable $operation): mixed;
/**
* Prüft ob Datei gesperrt ist
*/
public function isLocked(string $path): bool;
/**
* Schreibt mit File-Lock
*/
public function putWithLock(string $path, string $content): void;
/**
* Update mit File-Lock
*/
public function updateWithLock(string $path, callable $updateCallback): void;
/**
* Append mit File-Lock
*/
public function appendWithLock(string $path, string $content): void;
}