FileSystemWatcher::__construct
(PHP 8.6+, True Async 1.0)
public FileSystemWatcher::__construct(
string $path,
bool $recursive = false,
bool $coalesce = true
)
创建监视器并立即开始跟踪变化。事件从创建时刻起就被缓冲,即使迭代尚未开始。
参数
- path
- 要监视的文件或目录路径。
如果路径不存在或无法访问,将抛出
Error。 - recursive
- 如果为
true,嵌套目录也会被监视。 默认为false。 - coalesce
- 事件缓冲模式。
true(默认)— 事件按path/filename键分组。 对同一文件的重复更改通过 OR 运算合并renamed/changed标志。false— 每个操作系统事件作为单独元素存储在环形缓冲区中。
错误/异常
Error— 路径不存在或无法进行监视。
示例
示例 #1 监视目录
<?php
use Async\FileSystemWatcher;
$watcher = new FileSystemWatcher('/tmp/mydir');
foreach ($watcher as $event) {
echo "{$event->filename}\n";
$watcher->close();
}
?>
示例 #2 以原始模式递归监视
<?php
use Async\FileSystemWatcher;
$watcher = new FileSystemWatcher('/var/log', recursive: true, coalesce: false);
foreach ($watcher as $event) {
echo "[{$event->path}] {$event->filename}\n";
}
?>
参见
- FileSystemWatcher::close — 停止监视
- FileSystemWatcher — 概念概述