eZ\Bundle\EzPublishCoreBundle\Imagine\IORepositoryResolver::store PHP Method

store() public method

A temporary file is created to dump the filtered image and is used as basis for creation in the IO Repository. {@inheritdoc}
public store ( Liip\ImagineBundle\Binary\BinaryInterface $binary, $path, $filter )
$binary Liip\ImagineBundle\Binary\BinaryInterface
    public function store(BinaryInterface $binary, $path, $filter)
    {
        $tmpFile = tmpfile();
        fwrite($tmpFile, $binary->getContent());
        $tmpMetadata = stream_get_meta_data($tmpFile);
        $binaryCreateStruct = $this->ioService->newBinaryCreateStructFromLocalFile($tmpMetadata['uri']);
        $binaryCreateStruct->id = $this->getFilePath($path, $filter);
        $this->ioService->createBinaryFile($binaryCreateStruct);
        fclose($tmpFile);
    }

Usage Example

 public function testStore()
 {
     $filter = 'thumbnail';
     $path = 'Tardis/bigger/in-the-inside/RiverSong.jpg';
     $aliasPath = 'Tardis/bigger/in-the-inside/RiverSong_thumbnail.jpg';
     $binary = new Binary('foo content', 'some/mime-type');
     $createStruct = new BinaryFileCreateStruct();
     $this->ioService->expects($this->once())->method('newBinaryCreateStructFromLocalFile')->will($this->returnValue($createStruct));
     $this->ioService->expects($this->once())->method('createBinaryFile');
     $this->imageResolver->store($binary, $path, $filter);
 }