andersundsehr / resource-watcher
使用 Symfony Finder 的简单资源监视器
dev-master / 3.0.x-dev
2023-04-25 18:58 UTC
Requires
- php: >=7.1
- symfony/finder: ^2.7|^3.0|^4.0|^5.0|^6.0
Requires (Dev)
- phpunit/phpunit: ^5.7|^8
- symfony/filesystem: ^2.7|^3.0|^4.0|^5.0
Replaces
- yosymfony/resource-watcher: v3.0.0
This package is auto-updated.
Last update: 2024-08-25 21:50:49 UTC
README
这是一个简单的文件系统变更资源监视器。
安装
使用 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
,它对文件名及其最后修改时间戳进行哈希处理
重建缓存
要重建资源缓存,请使用类 ResourceWatcher
的 rebuild()
方法。
与资源缓存使用相对路径
由于 ResourceWatcher 的方法 enableRelativePathWithCache
,可以使用与资源缓存一起使用相对路径。
$watcher = new ResourceWatcher($resourceCache, $finder, $hashContent); $watcher->enableRelativePathWithCache()
ResourceWatcherResult
对象将具有相对路径。
单元测试
您可以使用以下命令运行单元测试:
$ composer test