FileFactory   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 0
dl 0
loc 58
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A createFile() 0 16 1
A getFileClass() 0 4 1
A setFileClass() 0 4 1
1
<?php
2
3
namespace Nord\Lumen\FileManager\Eloquent;
4
5
use Carbon\Carbon;
6
use Nord\Lumen\FileManager\Contracts\FileFactory as FileFactoryContract;
7
8
class FileFactory implements FileFactoryContract
9
{
10
11
    /**
12
     * @inheritdoc
13
     */
14
    protected $fileClass;
15
16
17
    /**
18
     * FileFactory constructor
19
     *
20
     * @param string $fileClass
21
     */
22
    public function __construct($fileClass)
23
    {
24
        $this->setFileClass($fileClass);
25
    }
26
27
28
    /**
29
     * @inheritdoc
30
     */
31
    public function createFile($id, $name, $extension, $path, $mimeType, $byteSize, $data, $disk, Carbon $savedAt)
32
    {
33
        $class = $this->getFileClass();
34
35
        return new $class([
36
            'file_id'   => $id,
37
            'name'      => $name,
38
            'extension' => $extension,
39
            'path'      => $path,
40
            'mime_type' => $mimeType,
41
            'byte_size' => $byteSize,
42
            'data'      => $data,
43
            'disk'      => $disk,
44
            'saved_at'  => $savedAt,
45
        ]);
46
    }
47
48
49
    /**
50
     * @return string
51
     */
52
    protected function getFileClass()
53
    {
54
        return $this->fileClass;
55
    }
56
57
58
    /**
59
     * @param string $fileClass
60
     */
61
    protected function setFileClass($fileClass)
62
    {
63
        $this->fileClass = $fileClass;
64
    }
65
}
66