azjezz / assess
PHP 的 Unix 文件系统通知库
1.0.2
2024-05-20 16:50 UTC
Requires
- php: ^8.3
- amphp/amp: ^3.0
- amphp/file: ^3.1
- revolt/event-loop: ^1.0
Requires (Dev)
- ext-pcntl: *
README
PHP 的 Unix 文件系统通知库。
特性
- 监控文件创建、修改、访问、更改、移动和删除。
- 可配置轮询间隔。
- 按文件扩展名过滤。
- 可选地监控目录。
- 易于使用的事件注册。
安装
您可以通过 Composer 安装此库
composer require azjezz/assess
用法
use Assess\Configuration; use Assess\Event\Event; use Assess\Event\EventType; use Assess\Watcher; use Revolt\EventLoop; $configuration = Configuration::createForDirectories([ '/path/to/directory', '/another/path/to/directory', ]) // poll interval in seconds ->withPollInterval(0.5) // do not watch directories ->withWatchDirectories(false) // include only PHP files ->withExtensions(['php']) ; $watcher = Watcher::create($configuration); $watcher->register(EventType::Created, function (Event $event): void { $node = $event->newIndex->nodes[$event->id]; echo "File created: {$node->path}\n"; }); $watcher->register(EventType::Moved, function (Event $event): void { $oldNode = $event->oldIndex->nodes[$event->id]; $newNode = $event->newIndex->nodes[$event->id]; echo "File moved: {$oldNode->path} -> {$newNode->path}\n"; }); $watcher->register(EventType::Deleted, function (Event $event): void { $node = $event->oldIndex->nodes[$event->id]; echo "File deleted: {$node->path}\n"; }); $watcher->enable(); $watcher->reference(); EventLoop::run();
查看 examples/command.php 以获取完整示例。
许可
此库采用 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。