fi1a/filesystem

PHP filesystem 提供文件系统的抽象层

1.0.8 2023-02-26 01:27 UTC

This package is auto-updated.

Last update: 2024-09-26 05:19:46 UTC


README

Latest Version Software License PHP Version Coverage Status Total Downloads Support mail

文件系统抽象层允许开发应用程序时无需知道文件存储的位置和方式。提供统一的接口来与不同类型的文件系统交互。同时,文件和文件夹的抽象类也包含了一些辅助方法来处理它们。

可用的适配器

  • Fi1a\Filesystem\Adapters\LocalAdapter - 文件系统适配器。

安装

可以使用 Composer 将此包作为依赖项安装。

composer require fi1a/filesystem

文件系统类

文件系统类提供了三个工厂方法来获取文件和文件夹的抽象类。

  • factory - 根据传入的路径创建文件或文件夹的抽象对象;
  • factoryFolder - 创建文件系统的文件夹抽象对象;
  • factoryFile - 创建文件系统的文件抽象对象。
use Fi1a\Filesystem\Adapters\LocalAdapter;
use Fi1a\Filesystem\Filesystem;

$adapter = new LocalAdapter(__DIR__ . '/Resources');
$filesystem = new Filesystem($adapter);

$folder = $filesystem->folder('./folder'); // Fi1a\Filesystem\FolderInterface
$folder->make();

$folder = $filesystem->factory('./folder'); // Fi1a\Filesystem\FolderInterface
$folder->isExist(); // true

$file = $filesystem->file($folder->getPath() . '/file.txt'); // Fi1a\Filesystem\FileInterface
$file->make();

$file = $filesystem->factory('/folder/file.txt'); // Fi1a\Filesystem\FileInterface
$file->isExist(); // true

文件夹抽象类

文件夹抽象类旨在简化与文件夹的操作,无论选择的文件系统是什么。

Fi1a\Filesystem\FolderInterface 的方法

创建文件夹的示例

use Fi1a\Filesystem\Adapters\LocalAdapter;
use Fi1a\Filesystem\Filesystem;

$adapter = new LocalAdapter(__DIR__ . '/Resources');
$filesystem = new Filesystem($adapter);

$folder = $filesystem->folder('./folder'); // Fi1a\Filesystem\FolderInterface
if (!$folder->isExist()) {
    $folder->make(); // true
}

文件抽象类

文件抽象类旨在简化与文件的操作,无论选择的文件系统是什么。

Fi1a\Filesystem\FileInterface 的方法

写入文件的示例

use Fi1a\Filesystem\Adapters\LocalAdapter;
use Fi1a\Filesystem\Filesystem;

$adapter = new LocalAdapter(__DIR__ . '/Resources');
$filesystem = new Filesystem($adapter);

$file = $filesystem->file('./folder/file.txt'); // Fi1a\Filesystem\FileInterface
$file->write('file content'); // 12

适配器

文件系统适配器

文件系统适配器 Fi1a\Filesystem\Adapters\LocalAdapter 用于在抽象类中使用本地文件系统。

use Fi1a\Filesystem\Adapters\LocalAdapter;
use Fi1a\Filesystem\Filesystem;

$adapter = new LocalAdapter(__DIR__ . '/Resources');
$filesystem = new Filesystem($adapter);

Fi1a\Filesystem\Adapters\LocalAdapter 构造函数的参数

文件系统辅助方法包含在类 Fi1a\Filesystem\Utils\LocalUtil