adt/files

v6.2.1 2026-06-27 05:47 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

BSD-3-Clause, GPL-2.0, GPL-3.0 27b3166f7232c91af28e9dc3f0f7ad0d5843a08b


README

Installation

$ composer require adt/files

  • Create instance of \ADT\Files\Listeners\FileListener - parameters:
    • $dataDir is path to directory where files will be saved
    • $dataUrl is URL leading to same directory
    • implementation of Doctrine\ORM\EntityMangerInterface
  • Register \ADT\Files\Listeners\FileListener into Doctrine\Common\EventManger. If you are using kdyby ORM extension, you can do that by added tag kdyby.subscriber like this:
    services:
     -
     factory: ADT\Files\Listeners\FileListener(%dataFolder%/files, 'files')
     tags: [kdyby.subscriber]
    
  • Create your File entity for example:
     use ADT\Files\Entities\IFileEntity;
     use ADT\Files\Entities\TFileEntity;
     use Doctrine\ORM\Mapping as ORM;
     
     /**
     * @ORM\Entity()
     */
     class File implements IFileEntity
     {
     
     use TFileEntity;
     
     }
    Feel free to add any aditional columns you need and dont forget about id/PK/identifier.

Usage

// create instance of entity
$file = new File();

// set binary data to entity as variable 
$file->setTemporaryContent($binaryContentInString, $originalFileName);

// or set path to temporary file, for example after receiving submitted form with file input 
$file->setTemporaryFile($pathToTemporaryFile, $originalFileName);

$entityManager->persist($file);
$entityManager->flush();