photo/app/Media/Base.php

42 lines
794 B
PHP

<?php
namespace App\Media;
use Illuminate\Support\Facades\Log;
abstract class Base
{
protected const BLOCK_SIZE = 4096;
/** Full path to the file */
protected string $filename;
protected int $filesize;
protected string $type;
public function __construct(string $filename,string $type)
{
Log::info(sprintf('Create a media type [%s] for [%s]',get_class($this),$filename));
$this->filename = $filename;
$this->filesize = filesize($filename);
$this->type = $type;
}
/**
* Enable getting values for keys in the response
*
* @param string $key
* @return mixed|object
* @throws \Exception
*/
public function __get(string $key): mixed
{
switch ($key) {
case 'type':
return $this->type;
default:
throw new \Exception('Unknown key: '.$key);
}
}
}