Spaces:
Sleeping
Sleeping
| layout: default | |
| permalink: /plugins/ | |
| title: Plugins | |
| # Plugins | |
| Need a feature which is not included in Flysystem's bag of tricks? Write a plugin! | |
| ~~~ php | |
| 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 | |
| ~~~ php | |
| 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'); | |
| ~~~ | |