module-filesystem icon indicating copy to clipboard operation
module-filesystem copied to clipboard

Replace Filesystem, FTP with FlySystem in order to support more filesystems

Open oparoz opened this issue 8 years ago • 6 comments

"FlySystem is a filesystem abstraction which allows you to easily swap out a local filesystem for a remote one. Reducing technical debt and chance of vendor lock-in."

It could replace the custom FileSystem and FTP modules and offer support for many more filesystems. Here is a list of what's available today :

  • Local
  • Azure
  • AWS S3 V2
  • AWS S3 V3
  • Copy.com
  • Dropbox
  • FTP / SFTP
  • GridFS
  • Memory
  • Rackspace
  • WebDAV
  • PHPCR
  • ZipArchive

The API

http://flysystem.thephpleague.com/api/

Write Files

$filesystem->write('path/to/file.txt', 'contents');

Update Files

$filesystem->update('path/to/file.txt', 'new contents');

Write or Update Files

$filesystem->put('path/to/file.txt', 'contents');

Read Files

$contents = $filesystem->read('path/to/file.txt');

Check if a file exists

$exists = $filesystem->has('path/to/file.txt');

Delete Files

$filesystem->delete('path/to/file.txt');

Read and Delete

$contents = $filesystem->readAndDelete('path/to/file.txt');

Rename Files

$filesystem->rename('filename.txt', 'newname.txt');

Copy Files

$filesystem->copy('filename.txt', 'duplicate.txt');

Get Mimetypes

$mimetype = $filesystem->getMimetype('path/to/file.txt');

Get Timestamps

$timestamp = $filesystem->getTimestamp('path/to/file.txt');

Get File Sizes

$size = $filesystem->getSize('path/to/file.txt');

Create Directories

$filesystem->createDir('path/to/nested/directory');

Directories are also made implicitly when writing to a deeper path

$filesystem->write('path/to/file.txt', 'contents');

Delete Directories

$filesystem->deleteDir('path/to/directory');

oparoz avatar Aug 12 '15 13:08 oparoz