netzmacht / contao-flysystem
This integrates the flysystem filesystem abstraction into Contao
Installs: 22
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Type:contao-module
Requires
- php: >=5.4
- contao-community-alliance/dependency-container: ~1.6
- contao/core: >=3.2,<3.6-dev
- doctrine/cache: ~1
- league/flysystem: ~1
Requires (Dev)
This package is auto-updated.
Last update: 2022-02-01 12:51:39 UTC
README
This library integrates the flysystem filesystem abstraction into Contao.
It provides a fully configured filesystem service for TL_ROOT
and an adapter for the Dbafs of Contao!
Install
You can install this library using Composer. It requires at least PHP 5.4 and Contao 3.2.
$ php composer.phar require netzmacht/contao-flysystem:~1.0
Features
- Filesystem abstraction for whole Contao installation
- Dbafs adapter
- Metadata caching
Usage
Access to the mount manager and the default file system
<?php
// First get the mount manager to get the file system.
$manager = $GLOBALS['container']['flysystem.mount-manager'];
$fileSystem = $manager->getFilesystem('local');
// Alternatively use the FlysystemTrait
class MyContentElement
{
use Netzmacht\Contao\Flysystem\Integration\FlysystemTrait;
protected function compile()
{
$fileSystem = $this->getMountManager()->getFilesystem('local');
}
}
Dbafs file system
For the dbafs filesystem exists an separate filesystem adapter. It allows to fetch files by path or uuid.
The meta data is enriched with model details id, uuid, hash, meta, importantPart
.
It keeps the dbafs in sync when performing file system actions.
<?php
$manager = $GLOBALS['container']['flysystem.mount-manager'];
$fileSystem = $manager->getFilesystem('dbafs');
// Get file path.
$metadata = $fileSystem->getMetadata('files/path/to/file');
// Get file by binary uuid.
$metadata = $fileSystem->getMetadata($this->multiSRC);
// Get file by binary uuid.
$metadata = $fileSystem->getMetadata(\String::binToUuid($this->multiSRC));
Note: You have to prepend the file path with the upload path as this is the Contao standard. If you try to access a
file out of the upload path scope you'll get an RootViolationException
.