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());
这将找到给定路径中所有具有给定扩展名且未隐藏的文件。