A base implementation of a flysystem adapter decorator

1.0.0 2015-01-21 22:19 UTC

This package is auto-updated.

Last update: 2023-11-06 06:59:18 UTC


This package provides a default adapter decorator. In most cases decorators only influence a particular part of the interface. The trait provided by this package provides the default implementation for the methods which the decorator is not concerned with.


composer require league/flysystem-adapter-decorator

Creating Decorators


use League\Flysystem\AdapterDecorator\DecoratorTrait;
use League\Flysystem\AdapterInterface;
use League\Flysystem\Config;

class MyDecorator implements AdapterInterface
    use DecoratorTrait;

    protected $adapter;

    public function __construct(AdapterInterface $adapter)
        $this->adapter = $adapter;

    // Required method to implement
    protected function getDecoratedAdapter()
        return $this->adapter;

    // Add your decorator methods here...

    public function write($path, $contents, Config $config)
        $contents = funky_encryption($contents);

        return $this->getDecoratedAdapter()->write($path, $contents, $config);

Using Decorators


use League\Flysystem\Adapter\Local;
use League\Flysystem\Filesystem;

$adapter = new Local($root);
$decoratedAdapter = new MyDecorator($adapter);
$filesystem = new Filesystem($decoratedAdapter);
// Use the Flysystem as you normally would.