ComponentsFileSystemWatcher::__construct

FileSystemWatcher::__construct

(PHP 8.6+, True Async 1.0)

php
public FileSystemWatcher::__construct(
    string $path,
    bool $recursive = false,
    bool $coalesce = true,
    int $debounceMs = 0,
    int $maxHoldMs = 0,
    array $extensions = []
)

Creates a watcher and immediately starts tracking changes. Events are buffered from the moment of creation, even if iteration has not yet begun.

Parameters

path : The path to a file or directory to watch. If the path does not exist or is inaccessible, an Error is thrown.

recursive : If true, nested directories are also monitored. Default is false.

coalesce : Event buffering mode. true (default) --- events are grouped by path/filename key. Repeated changes to the same file merge the renamed/changed flags via OR. false --- each OS event is stored as a separate element in a circular buffer.

Errors/Exceptions

  • Error --- the path does not exist or is not available for watching.

Examples

Example #1 Watching a directory

php
<?php
use Async\FileSystemWatcher;

$watcher = new FileSystemWatcher('/tmp/mydir');

foreach ($watcher as $event) {
    echo "{$event->filename}\n";
    $watcher->close();
}
?>

Example #2 Recursive watching in raw mode

php
<?php
use Async\FileSystemWatcher;

$watcher = new FileSystemWatcher('/var/log', recursive: true, coalesce: false);

foreach ($watcher as $event) {
    echo "[{$event->path}] {$event->filename}\n";
}
?>

See Also