module-filesystem
module-filesystem copied to clipboard
Replace Filesystem, FTP with FlySystem in order to support more filesystems
"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');