[league/flysystem]一个优雅且支持度非常高的文件操作接口

2022-03-31 奥古斯宏

开发的时候不免与文件系统打交道,比如对文件进行修改/新增/遍历,如果使用原生的方式,是非常痛苦的,写出的代码可读性很差.

flysystem是一个优雅的文件操作库,它能让我们操作文件时变得非常简单,不仅如此,他还是一个通用的接口,不仅支持本地的文件操作还支持其他更多的存储系统和协议,比如ftp,对象存储等.我们可以不修改任何代码,只替换驱动,就能兼容其他系统.

他官方支持的存储系统如下:

  • 本地存储
  • FTP存储
  • 内存存储
  • 亚马逊对象存储
  • 谷歌云存储
  • sftp
  • webdav

有很多人贡献了更多的存储支持,比如阿里云,七牛云等.

基本用法

// SETUP
$adapter = new League\Flysystem\Local\LocalFilesystemAdapter($rootPath);
$filesystem = new League\Flysystem\Filesystem($adapter);

// USAGE
$filesystem->write($path, $contents);

支持完善的文件操作

  • write 文件写入
  • writeStream 文件流写入
  • read 文件读取
  • readStream 文件流读取
  • delete 文件删除
  • deleteDirectory 目录删除
  • listContents 目录遍历

支持目录的各种方法

  • 过滤
  • 搜索
  • 排序

结尾

flysystem不仅仅是一个通用的接口,生态也非常完善,有很多框架也直接使用它作为底层的文件操作方法,毕竟修改一下配置文件就能支持更多系统的特性很有魅力.

评论
点击登录