1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace coderius\hitCounter\services; |
4
|
|
|
|
5
|
|
|
use coderius\hitCounter\models\HitCounterModel; |
6
|
|
|
use coderius\hitCounter\entities\HitCounter; |
7
|
|
|
use coderius\hitCounter\dto\HitDto; |
8
|
|
|
|
9
|
|
|
/** |
10
|
|
|
* Class HitCounterAssembler |
11
|
|
|
*/ |
12
|
|
|
|
13
|
|
|
final class HitCounterDtoAssembler{ |
14
|
|
|
|
15
|
|
|
private $entityClass; |
16
|
|
|
|
17
|
|
|
public function __construct($entityClass = HitCounter::class) |
18
|
|
|
{ |
19
|
|
|
if(!(new $entityClass) instanceof HitCounter){ |
20
|
|
|
throw new \InvalidArgumentException($this->entityClass . 'not subclass from' . HitCounter::class); |
21
|
|
|
} |
22
|
|
|
$this->entityClass = $entityClass; |
23
|
|
|
|
24
|
|
|
} |
25
|
|
|
|
26
|
|
|
public function readDto(HitDto $dto): HitCounter |
27
|
|
|
{ |
28
|
|
|
$hit = $this->entityClass::create( |
29
|
|
|
$dto->getCounterId(), |
30
|
|
|
$dto->getCookieMark(), |
31
|
|
|
$dto->getJsCookeiEnabled(), |
32
|
|
|
$dto->getJsJavaEnabled(), |
33
|
|
|
$dto->getJsTimezoneOffset(), |
34
|
|
|
$dto->getJsTimezone(), |
35
|
|
|
$dto->getJsConnection(), |
36
|
|
|
$dto->getJsCurrentUrl(), |
37
|
|
|
$dto->getJsRefererUrl(), |
38
|
|
|
$dto->getJsScreenWidth(), |
39
|
|
|
$dto->getJsScreenHeight(), |
40
|
|
|
$dto->getJsColorDepth(), |
41
|
|
|
$dto->getJsBrowserLanguage(), |
42
|
|
|
$dto->getJsHistoryLength(), |
43
|
|
|
$dto->getJsIsToutchDevice(), |
44
|
|
|
$dto->getJsProcessorRam(), |
45
|
|
|
$dto->getServIp(), |
46
|
|
|
$dto->getServUserAgent(), |
47
|
|
|
$dto->getServRefererUrl(), |
48
|
|
|
$dto->getServServerName(), |
49
|
|
|
$dto->getServAuthUserId(), |
50
|
|
|
$dto->getServPort(), |
51
|
|
|
$dto->getServCookies(), |
52
|
|
|
$dto->getServOs(), |
53
|
|
|
$dto->getServClient(), |
54
|
|
|
$dto->getServDevice(), |
55
|
|
|
$dto->getServBrand(), |
56
|
|
|
$dto->getServModel(), |
57
|
|
|
$dto->getServBot(), |
58
|
|
|
$dto->getServHostByIp(), |
59
|
|
|
$dto->getServIsProxyOrVpn() |
60
|
|
|
); |
61
|
|
|
|
62
|
|
|
return $hit; |
63
|
|
|
} |
64
|
|
|
|
65
|
|
|
// public function writeDto(HitCounter $hit): HitDto |
66
|
|
|
// { |
67
|
|
|
// // not finished |
68
|
|
|
// return; |
69
|
|
|
|
70
|
|
|
// } |
71
|
|
|
|
72
|
|
|
} |