FileFactory::createFile()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 16
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 12
nc 1
nop 9

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

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