phpdocumentor/flyfinder

Flysystem 插件,用于为 Filesystem 实体添加文件查找功能

2.0.0 2024-09-15 19:58 UTC

README

License: MIT Scrutinizer Code Coverage Scrutinizer Code Quality Stable Version Unstable Version

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());

这将找到给定路径中所有具有给定扩展名且未隐藏的文件。