Issues (15)

php-src/Check/ResourceFiles.php (1 issue)

Labels
Severity
1
<?php
2
3
namespace kalanis\kw_mime\Check;
4
5
6
use kalanis\kw_files\FilesException;
7
use kalanis\kw_files\Interfaces\IFLTranslations;
8
use kalanis\kw_files\Interfaces\IProcessFiles;
9
use kalanis\kw_files\Traits\TFile;
10
use kalanis\kw_mime\Interfaces\IMimeChecks;
11
use kalanis\kw_mime\Interfaces\IMiTranslations;
12
use kalanis\kw_mime\MimeException;
13
use kalanis\kw_paths\ArrayPath;
14
use kalanis\kw_paths\PathsException;
15
use kalanis\kw_paths\Stuff;
16
17
18
/**
19
 * Class ResourceFiles
20
 * @package kalanis\kw_mime\Check
21
 * System library to detect the mime type by files processor - pass as resource
22
 */
23
class ResourceFiles implements IMimeChecks
24
{
25
    use Traits\TResult;
26
    use Traits\TToResource;
27
    use TFile;
28
29
    protected ArrayPath $pathLib;
30
31 5
    public function __construct(?IFLTranslations $flLang = null, ?IMiTranslations $miLang = null)
32
    {
33 5
        $this->setFlLang($flLang);
34 5
        $this->setMiLang($miLang);
35 5
        $this->pathLib = new ArrayPath();
36
    }
37
38 4
    public function canUse($source): bool
39
    {
40 4
        if (!$this->isMimeFunction()) {
41 1
            return false;
42
        }
43 3
        if (is_object($source) && ($source instanceof IProcessFiles)) {
44 2
            $this->setProcessFile($source);
45 2
            return true;
46
        }
47 1
        return false;
48
    }
49
50 3
    public function getMime(array $path): string
51
    {
52 3
        $this->checkMimeFunction();
53
        try {
54 3
            $content = $this->getProcessFile()->readFile($path);
55 2
            $resource = $this->readSourceToResource(Stuff::arrayToPath($path), $content);
56 2
            return $this->determineResult(mime_content_type($resource));
0 ignored issues
show
$resource of type resource is incompatible with the type string expected by parameter $filename of mime_content_type(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

56
            return $this->determineResult(mime_content_type(/** @scrutinizer ignore-type */ $resource));
Loading history...
57 1
        } catch (FilesException | PathsException $ex) {
58 1
            throw new MimeException($ex->getMessage(), $ex->getCode(), $ex);
59
        }
60
    }
61
}
62