Passed
Push — master ( 5d6b43...ce7998 )
by Milan
02:00
created

UniquePath::setMiddle()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
namespace h4kuna\Upload\Upload\Filename;
4
5
use h4kuna\Upload\Upload\IFileName;
6
use h4kuna\Upload\Utils;
7
use Nette\Http;
8
9
class UniquePath implements IFileName
10
{
11
12
	/** @var int */
13
	private $length = 4;
14
15
	/** @var int */
16
	private $middle = 2;
17
18
	/**
19
	 * @param int $length
20
	 */
21
	public function setLength($length)
22
	{
23
		$this->length = $length;
24
	}
25
26
	/**
27
	 * @param int $middle
28
	 */
29
	public function setMiddle(int $middle): void
30
	{
31
		$this->middle = $middle;
32
	}
33
34
	/**
35
	 * @param Http\FileUpload $fileUpload
36
	 * @return string
37
	 */
38
	public function createUniqueName(Http\FileUpload $fileUpload)
39
	{
40
		$ext = Utils::extension($fileUpload);
41
		$nameSplit = str_split(sha1(microtime(true) . '.' . $fileUpload->getName()), $this->length);
42
		return implode(DIRECTORY_SEPARATOR, array_slice($nameSplit, 0, $this->middle)) . DIRECTORY_SEPARATOR . implode(array_slice($nameSplit, $this->middle)) . '.' . $ext;
43
	}
44
45
}
46