Skip to content
This repository has been archived by the owner on Apr 6, 2020. It is now read-only.

netzmacht-archive/contao-flysystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contao Flysystem integration

Build Status Version License Downloads Contao Community Alliance coding standard

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.

About

Flysystem integration into Contao CMS.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages