<?php
declare(strict_types=1);
namespace App\Extensions;
use Symfony\Component\HttpFoundation\File\File;
class ApiMediaFile extends File
{
/**
* @var string
*/
protected $extension;
/**
* @var string
*/
protected $mimetype;
/**
* @var resource
*/
protected $resource;
public function __construct($handle)
{
if (!\is_resource($handle)) {
throw new \RuntimeException('handle is not a resource');
}
$this->resource = $handle;
$meta = stream_get_meta_data($handle);
parent::__construct($meta['uri']);
}
public function getExtension()
{
return $this->extension ?: parent::getExtension();
}
/**
* @param string $extension
*/
public function setExtension($extension): void
{
$this->extension = $extension;
}
public function getMimetype()
{
return $this->mimetype ?: parent::getMimeType();
}
/**
* @param string $mimetype
*/
public function setMimetype($mimetype): void
{
$this->mimetype = $mimetype;
}
public function guessExtension()
{
return $this->extension ?: parent::guessExtension();
}
}