PHP Classes

File: vendor/league/flysystem/docs/plugins.md

Recommend this page to a friend!
  Classes of Abed Nego Ragil Putra   Laravel Blogging Platform   vendor/league/flysystem/docs/plugins.md   Download  
File: vendor/league/flysystem/docs/plugins.md
Role: Auxiliary data
Content type: text/markdown
Description: Auxiliary data
Class: Laravel Blogging Platform
Manage blog posts using Laravel and Bootstrap
Author: By
Last change:
Date: 5 years ago
Size: 944 bytes
 

Contents

Class file image Download

layout: default permalink: /plugins/ title: Plugins

Plugins

Need a feature which is not included in Flysystem's bag of tricks? Write a plugin!

use League\Flysystem\FilesystemInterface;
use League\Flysystem\PluginInterface;

class MaximusAwesomeness implements PluginInterface
{
    protected $filesystem;

    public function setFilesystem(FilesystemInterface $filesystem)
    {
        $this->filesystem = $filesystem;
    }

    public function getMethod()
    {
        return 'getDown';
    }

    public function handle($path = null)
    {
        $contents = $this->filesystem->read($path);

        return sha1($contents);
    }
}

Now we're ready to use the plugin

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

$filesystem = new Filesystem(new Adapter\Local(__DIR__.'/path/to/files/'));
$filesystem->addPlugin(new MaximusAwesomeness);
$sha1 = $filesystem->getDown('path/to/file');