league/flysystem-adapter-decorator

flysystem适配器装饰器的基实现

1.0.0 2015-01-21 22:19 UTC

This package is auto-updated.

Last update: 2024-09-06 08:37:02 UTC


README

此包提供默认适配器装饰器。在大多数情况下,装饰器仅影响接口的特定部分。此包提供的trait为装饰器不关心的方法提供默认实现。

安装

composer require league/flysystem-adapter-decorator

创建装饰器

<?php

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);
    }
}

使用装饰器

<?php

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.