Skip to content

Latest commit

 

History

History
46 lines (35 loc) · 1.64 KB

File metadata and controls

46 lines (35 loc) · 1.64 KB

Filesystem

Build Status codecov Type Coverage

Filesystem abstraction layer, the goal is to provide a model where you design how you put your files into directories without worrying where it will be persisted.

Documentation

Installation

composer install innmind/filesystem

Usage

The whole model is structured around files, directories, contents and adapters. File, Directory and Content are immutable objects.

Example:

use Innmind\Filesystem\{
    File,
    File\Content,
    Directory,
    Adapter,
};
use Innmind\Url\Path;

$directory = Directory::named('uploads')->add(
    File::named(
        $_FILES['my_upload']['name'],
        Content::ofString(\file_get_contents($_FILES['my_upload']['tmp_name'])),
    ),
);
$adapter = Adapter::mount(Path::of('/var/www/web/'))->unwrap();
$_ = $adapter
    ->add($directory)
    ->unwrap();

This example show you how you can create a new directory uploads in the folder /var/www/web/ of your filesystem and create the uploaded file into it.

Note

For performance reasons the filesystem adapter only persist to disk the files that have changed (achievable via the immutable nature of file objects).