FileField::handles()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 3
c 0
b 0
f 0
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
namespace rtens\domin\delivery\cli\fields;
3
4
use rtens\domin\delivery\cli\CliField;
5
use rtens\domin\Parameter;
6
use rtens\domin\parameters\File;
7
use rtens\domin\parameters\file\MemoryFile;
8
use rtens\domin\parameters\file\SavedFile;
9
use watoki\reflect\type\ClassType;
10
11
class FileField implements CliField {
12
13
    /**
14
     * @param Parameter $parameter
15
     * @return bool
16
     */
17
    public function handles(Parameter $parameter) {
18
        return $parameter->getType() == new ClassType(File::class);
19
    }
20
21
    /**
22
     * @param Parameter $parameter
23
     * @param string $serialized
24
     * @return File
25
     * @throws \Exception
26
     */
27
    public function inflate(Parameter $parameter, $serialized) {
28
        if (!is_file($serialized)) {
29
            return new MemoryFile('unknown', 'unknown');
30
        }
31
        return new SavedFile($serialized, basename($serialized), 'file');
32
    }
33
34
    /**
35
     * @param Parameter $parameter
36
     * @return string
37
     */
38
    public function getDescription(Parameter $parameter) {
39
    }
40
}