/**
* Creates a lock for the given resource.
*
* @param string $resource The resource to lock
* @param float|null $ttl Maximum expected lock duration in seconds
* @param bool $autoRelease Whether to automatically release the lock or not when the lock instance is destroyed
*
* @return SharedLockInterface
*/
public function createLock(string
$resource, ?float
$ttl = 300.0, bool
$autoRelease = true
): LockInterface
{ return $this->
createLockFromKey(new Key($resource),
$ttl,
$autoRelease);
} /**
* Creates a lock from the given key.
*
* @param Key $key The key containing the lock's state
* @param float|null $ttl Maximum expected lock duration in seconds
* @param bool $autoRelease Whether to automatically release the lock or not when the lock instance is destroyed
*
* @return SharedLockInterface
*/