Codeception / Codeception/module-filesystem

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

Open
#8 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
PHP
Stars
20
Forks
7
PR merge metrics
No merged PRs in 30d

Description

"[FlySystem](http://flysystem.thephpleague.com/) 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');`

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.