phpdocumentor / flyfinder
Flysystem插件,为Filesystem实体添加文件查找功能
Requires
- php: ^8.0||^8.1||^8.2||^8.3
- league/flysystem: ^3.0
Requires (Dev)
- league/flysystem-memory: ~3
- mockery/mockery: ^1.4
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^1.12
- phpstan/phpstan-phpunit: ^1.4
- phpunit/phpunit: ^9.0
- vimeo/psalm: ^5.26
This package is auto-updated.
Last update: 2024-09-19 18:07:24 UTC
README
FlyFinder
FlyFinder是一个针对Flysystem的实用类,可以基于某些条件查找文件。
FlyFinder可以搜索隐藏的文件(无论是文件本身隐藏,还是位于隐藏目录中),具有特定扩展名或存在于特定路径中的文件。
Flyfinder不会返回目录本身... 只返回文件。
安装
安装此库的最简单方法是使用以下命令通过Composer
$ composer require phpdocumentor/flyfinder
示例
准备好开始而不想阅读下面的所有文本?请参阅示例文件夹,并检查您想要执行的操作类型。
用法
为了使用FlyFinder插件,您首先需要一个带有适配器的Flyfinder文件系统,例如本地适配器。
use League\Flysystem\Filesystem;
use League\Flysystem\Local\LocalFilesystemAdapter as LocalAdapter;
use Flyfinder\Finder;
$filesystem = new Filesystem(new LocalAdapter(__DIR__.'/path/to/files/'));
现在您可以创建Finder
实例
$finder = new Finder($filesystem);
FlyFinder需要规格来了解要查找什么。以下是一些可用的规格
- IsHidden(当文件或目录被隐藏时,此规格将返回
true
), - HasExtension(当文件或目录具有指定的扩展名时,此规格将返回
true
), - InPath(当文件位于给定的路径时,此规格将返回
true
。允许使用通配符。)- 请注意,此路径应视为相对于
$filesystem
路径的相对路径
- 请注意,此路径应视为相对于
规格可以如下实例化
use Flyfinder\Path;
use Flyfinder\Specification\IsHidden;
use Flyfinder\Specification\HasExtension;
use Flyfinder\Specification\InPath;
$isHidden = new IsHidden();
$hasExtension = new HasExtension(['txt']);
$inPath = new InPath(new Path('mydir'));
组合规格
您可以通过组合规格在更多标准上进行搜索。规格可以如下链式使用
$isHidden->andSpecification($hasExtension)
将找到所有隐藏且具有给定扩展名的文件和目录。
$isHidden->orSpecification($hasExtension)
将找到所有隐藏或具有给定扩展名的文件和目录。
$isHidden->notSpecification
将找到所有非隐藏的文件和目录。
您还可以创建更长的链,如下所示
$specification = $inPath->andSpecification($hasExtension)->andSpecification($isHidden->notSpecification());
这将找到给定路径中具有给定扩展名且非隐藏的所有文件。