class LockableFile (View source)

Properties

protected resource $handle

The file resource.

protected string $path

The file path.

protected bool $isLocked

Indicates if the file is locked.

Methods

void
__construct(string $path, string $mode)

Create a new File instance.

void
ensureDirectoryExists(string $path)

Create the file's directory if necessary.

void
createResource(string $path, string $mode)

Create the file resource.

string
read(int|null $length = null)

Read the file contents.

int
size()

Get the file size.

$this
write(string $contents)

Write to the file.

$this
truncate()

Truncate the file.

$this
getSharedLock(bool $block = false)

Get a shared lock on the file.

$this
getExclusiveLock(bool $block = false)

Get an exclusive lock on the file.

$this
releaseLock()

Release the lock on the file.

bool
close()

Close the file.

Details

void __construct(string $path, string $mode)

Create a new File instance.

Parameters

string $path
string $mode

Return Value

void

protected void ensureDirectoryExists(string $path)

Create the file's directory if necessary.

Parameters

string $path

Return Value

void

protected void createResource(string $path, string $mode)

Create the file resource.

Parameters

string $path
string $mode

Return Value

void

Exceptions

Exception

string read(int|null $length = null)

Read the file contents.

Parameters

int|null $length

Return Value

string

int size()

Get the file size.

Return Value

int

$this write(string $contents)

Write to the file.

Parameters

string $contents

Return Value

$this

$this truncate()

Truncate the file.

Return Value

$this

$this getSharedLock(bool $block = false)

Get a shared lock on the file.

Parameters

bool $block

Return Value

$this

Exceptions

LockTimeoutException

$this getExclusiveLock(bool $block = false)

Get an exclusive lock on the file.

Parameters

bool $block

Return Value

$this

Exceptions

LockTimeoutException

$this releaseLock()

Release the lock on the file.

Return Value

$this

bool close()

Close the file.

Return Value

bool