This is a high level filesystem abstraction for php, inspired by the Java filesystem API.
We evaluated various filesystem abstraction frameworks, like Gaufrette.
But none of the frameworks we found, provides a real filesystem abstraction.
Gaufrette for example is more a key => value
storage, that uses a filesystem or online storage as source.
Some essential functions, like deleting a directory are not available in Gaufrette.
Copying files across filesystem adapters is also not possible.
The benefit of Filicious
is that it is a unique layer that...
- can be used every time you work with files (also for temporary files)
- can be used across multiple filesystems (also move or copy files between one another)
- is a nearly complete replacement for the php file API
- does not hide the file structure
- provides high and low level functions to the filesystem
- works with php iterators
- provides a "merged" filesystem, that builds a merged structure from several filesystems
- supports streaming
- provides configurable public url generation (useful for web apps)
use Filicious\Local\LocalAdapter;
use Filicious\Filesystem;
// go into your kitchen
$adapter = new LocalAdapter('/var/lib/kitchen');
$kitchen = new Filesystem($adapter);
// and grab the starter menu
$starterMenuInKitchen = $kitchen->getFile('/starter.menu');
// access the lounge
$adapter = new LocalAdapter('/var/lib/lounge');
$lounge = new Filesystem($adapter);
// and move the starter menu from the kitchen to the lounge
$starterMenuInLounge = $lounge->getFile('/starter.menu');
$starterMenuInKitchen->moveTo($starterMenuInLounge);
Find out more on filicious.github.io/how-to-use.