src/Extensions/ApiMediaFile.php line 39

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Extensions;
  4. use Symfony\Component\HttpFoundation\File\File;
  5. class ApiMediaFile extends File
  6. {
  7.     /**
  8.      * @var string
  9.      */
  10.     protected $extension;
  11.     /**
  12.      * @var string
  13.      */
  14.     protected $mimetype;
  15.     /**
  16.      * @var resource
  17.      */
  18.     protected $resource;
  19.     public function __construct($handle)
  20.     {
  21.         if (!\is_resource($handle)) {
  22.             throw new \RuntimeException('handle is not a resource');
  23.         }
  24.         $this->resource $handle;
  25.         $meta stream_get_meta_data($handle);
  26.         parent::__construct($meta['uri']);
  27.     }
  28.     public function getExtension()
  29.     {
  30.         return $this->extension ?: parent::getExtension();
  31.     }
  32.     /**
  33.      * @param string $extension
  34.      */
  35.     public function setExtension($extension): void
  36.     {
  37.         $this->extension $extension;
  38.     }
  39.     public function getMimetype()
  40.     {
  41.         return $this->mimetype ?: parent::getMimeType();
  42.     }
  43.     /**
  44.      * @param string $mimetype
  45.      */
  46.     public function setMimetype($mimetype): void
  47.     {
  48.         $this->mimetype $mimetype;
  49.     }
  50.     public function guessExtension()
  51.     {
  52.         return $this->extension ?: parent::guessExtension();
  53.     }
  54. }