Completed
Push — develop ( d383bc...d9bd45 )
by Adrien
23:59
created

Drawing::__clone()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 8
Code Lines 6

Duplication

Lines 8
Ratio 100 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
cc 3
eloc 6
nc 3
nop 0
dl 8
loc 8
ccs 0
cts 6
cp 0
crap 12
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace PhpOffice\PhpSpreadsheet\Worksheet;
4
5
use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
6
7
class Drawing extends BaseDrawing
8
{
9
    /**
10
     * Path.
11
     *
12
     * @var string
13
     */
14
    private $path;
15
16
    /**
17
     * Create a new Drawing.
18
     */
19 15
    public function __construct()
20
    {
21
        // Initialise values
22 15
        $this->path = '';
23
24
        // Initialize parent
25 15
        parent::__construct();
26 15
    }
27
28
    /**
29
     * Get Filename.
30
     *
31
     * @return string
32
     */
33 7
    public function getFilename()
34
    {
35 7
        return basename($this->path);
36
    }
37
38
    /**
39
     * Get indexed filename (using image index).
40
     *
41
     * @return string
42
     */
43 7
    public function getIndexedFilename()
44
    {
45 7
        $fileName = $this->getFilename();
46 7
        $fileName = str_replace(' ', '_', $fileName);
47
48 7
        return str_replace('.' . $this->getExtension(), '', $fileName) . $this->getImageIndex() . '.' . $this->getExtension();
49
    }
50
51
    /**
52
     * Get Extension.
53
     *
54
     * @return string
55
     */
56 7
    public function getExtension()
57
    {
58 7
        $exploded = explode('.', basename($this->path));
59
60 7
        return $exploded[count($exploded) - 1];
61
    }
62
63
    /**
64
     * Get Path.
65
     *
66
     * @return string
67
     */
68 13
    public function getPath()
69
    {
70 13
        return $this->path;
71
    }
72
73
    /**
74
     * Set Path.
75
     *
76
     * @param string $pValue File path
77
     * @param bool $pVerifyFile Verify file
78
     *
79
     * @throws PhpSpreadsheetException
80
     *
81
     * @return Drawing
82
     */
83 15
    public function setPath($pValue, $pVerifyFile = true)
84
    {
85 15
        if ($pVerifyFile) {
86 13
            if (file_exists($pValue)) {
87 13
                $this->path = $pValue;
88
89 13
                if ($this->width == 0 && $this->height == 0) {
90
                    // Get width/height
91 13
                    list($this->width, $this->height) = getimagesize($pValue);
92
                }
93
            } else {
94 13
                throw new PhpSpreadsheetException("File $pValue not found!");
95
            }
96
        } else {
97 4
            $this->path = $pValue;
98
        }
99
100 15
        return $this;
101
    }
102
103
    /**
104
     * Get hash code.
105
     *
106
     * @return string Hash code
107
     */
108 6
    public function getHashCode()
109
    {
110 6
        return md5(
111 6
            $this->path .
112 6
            parent::getHashCode() .
113 6
            __CLASS__
114
        );
115
    }
116
}
117