andersundsehr/resource-watcher

使用 Symfony Finder 的简单资源监视器

dev-master / 3.0.x-dev 2023-04-25 18:58 UTC

This package is auto-updated.

Last update: 2024-08-25 21:50:49 UTC


README

这是一个简单的文件系统变更资源监视器。

Build Status Latest Stable Version

安装

使用 Composer 安装此包

composer require andersundsehr/resource-watcher:dev-master

如何使用?

此包使用 Symfony Finder 设置发现文件变更的准则。

use Symfony\Component\Finder\Finder;
use Yosymfony\ResourceWatcher\Crc32ContentHash;
use Yosymfony\ResourceWatcher\ResourceWatcher;
use Yosymfony\ResourceWatcher\ResourceCachePhpFile;

$finder = new Finder();
$finder->files()
    ->name('*.md')
    ->in(__DIR__);

$hashContent = new Crc32ContentHash();
$resourceCache = new ResourceCachePhpFile('/path-cache-file.php');
$watcher = new ResourceWatcher($resourceCache, $finder, $hashContent);
$watcher->initialize();

// delete a file

$result = $watcher->findChanges();

$result->getDeletedResources() // array of deleted filenames. e.g: "/home/yosymfony/README.md"

查找变更

每次调用类 ResourceWatcher 的方法 findChanges() 时,它都会返回一个类型为 ResourceWatcherResult 的对象,其中包含有关文件系统中所有生成的变更的信息。 ResourceWatcherResult 类有以下方法:

  • getNewFiles():返回一个包含新资源路径的数组。
  • getDeletedFiles():返回一个包含已删除资源路径的数组。
  • getUpdatedFiles():返回一个包含已更新资源路径的数组。
  • hasChanges():资源中是否有变更?。

哈希替代方案

包中包含两个哈希类:

  • Yosymfony\ResourceWatcher\Crc32ContentHash,它对文件内容进行哈希处理
  • Yosymfony\ResourceWatcher\Crc32MetaDataHash,它对文件名及其最后修改时间戳进行哈希处理

重建缓存

要重建资源缓存,请使用类 ResourceWatcherrebuild() 方法。

与资源缓存使用相对路径

由于 ResourceWatcher 的方法 enableRelativePathWithCache,可以使用与资源缓存一起使用相对路径。

$watcher = new ResourceWatcher($resourceCache, $finder, $hashContent);
$watcher->enableRelativePathWithCache()

ResourceWatcherResult 对象将具有相对路径。

单元测试

您可以使用以下命令运行单元测试:

$ composer test