slick/fswatch

slick/fswatch 是一个简单的库,可以计算指定目录中所有文件的总大小,以便您验证其内容是否已更改。

v0.1.0 2024-05-07 00:38 UTC

This package is auto-updated.

Last update: 2024-09-17 17:58:32 UTC


README

Latest Version Software License Build Status Quality Score Contributor Covenant Total Downloads

slick/fswatch 是一个简单的库,可以计算指定目录中所有文件的总大小,以便您验证其内容是否已更改。

此包符合 PSR-2 代码标准和 PSR-4 自动加载标准。它还遵循 语义版本 2.0.0 规范。

安装

通过 Composer

composer require slick/fswatch

使用方法

首先,您需要创建一个目录快照,以便以后能够将其与其他更改进行比较。

use Slick\FsWatch\Directory;

$dir = new Directory('/path/to/directory');
// can be stored in any cache or temporary memory to be checked later
$snapshot = $dir->snapshot();
file_put_contents('/some/cache/file', serialize($snapshot)); 

现在,您可以验证目录内容是否已更改。

use Slick\FsWatch\Directory;

$dir = new Directory('/path/to/directory');
$snapshot = unserialize(file_get_contents('/some/cache/file'))

if ($dir->hasChanged($snapshot)) { //directory contents have changed
    $changes = $dir->snapshot()->compareTo($snapshot);
    // do your logic
}

作为监视器使用

使用与上面相同的原则,您可以使用类似守护进程的脚本,当给定目录中的文件更改或添加时,递归地执行给定的回调。

use Slick\FsWatch\Directory;
use Slick\FsWatch\Watcher;

$dir = new Directory('/path/to/directory');

$watcher = new Watcher($dir, function (Directory $dir) => {
    // do your logic on file change
});

// This will run until Ctrl + C (SIGINT) is pressed.
// You can pass an expression of callable to determine the end of the execution
$watcher->watch(Watcher::SIGINT);

测试

phpunit

贡献

请参阅 CONTRIBUTING 了解详情。

安全性

如果您发现任何安全相关的问题,请通过电子邮件 [email protected] 反馈,而不是使用问题跟踪器。

致谢

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。