tsufeki / react-filesystem-monitor
基于 React PHP 的异步文件系统监控器
0.4.1
2019-01-22 19:22 UTC
Requires
- php: >=7.0
- evenement/evenement: ^3.0 || ^2.0
- react/child-process: ^0.6 || ^0.5.2
- react/event-loop: ^1.0 || ^0.5 || ^0.4.3
- react/stream: ^1.0 || ^0.7
- tsufeki/react-line-stream: ^0.2.0
This package is auto-updated.
Last update: 2024-08-29 05:03:42 UTC
README
基于 React PHP 的异步文件系统监控器。
目前有以下实现方式
INotifyProcessMonitor
基于inotifywait
命令行工具,用于 Linux。FsWatchProcessMonitor
基于fswatch
,用于 OSX。
所有实现的构造函数都接受两个参数:要监控的路径(文件或递归监控的目录)和可选的事件数组(默认为所有事件)。
可用事件
access
即读取attribute
- 权限、时间戳等的修改关闭
创建
删除
修改
move_from
,move_to
- 文件移动,分别触发源路径和目标路径。只有针对监控目录内部路径的移动事件会被触发。打开
这些事件作为参数传递:触发事件的路径,一个布尔值指示路径是否是目录,事件名称和监控实例本身。
其他事件
all
- 触发所有上述事件start
- 监控器完成设置后触发错误
请注意,并非所有后端都支持所有事件。 fswatch
不会触发 open
和 close
事件;此外,start
是在进程启动后立即触发,而不是在设置完成后。
示例
$loop = React\EventLoop\Factory::create(); $monitor = (new ReactFilesystemMonitor\FilesystemMonitorFactory())->create('foo/bar', ['modify', 'delete']); $monitor->on('all', function ($path, $isDir, $event, $monitor) { echo sprintf("%s: %s%s\n", $event, $path, $isDir ? ' [dir]' : ''); }); $monitor->start($loop); $loop->run();