slick / fswatch
slick/fswatch 是一个简单的库,可以计算指定目录中所有文件的总大小,以便您验证其内容是否已更改。
v0.1.0
2024-05-07 00:38 UTC
Requires
- php: >=8.2
Requires (Dev)
- phpmd/phpmd: dev-master
- phpspec/prophecy: ^1.0@dev
- phpspec/prophecy-phpunit: ^2.0@dev
- phpstan/phpstan: 2.0.x-dev
- phpunit/phpunit: 11.2.x-dev
- squizlabs/php_codesniffer: 4.0.x-dev
This package is auto-updated.
Last update: 2024-09-17 17:58:32 UTC
README
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)。请参阅 许可证文件 了解更多信息。