1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace XHGui\Saver; |
4
|
|
|
|
5
|
|
|
use XHGui\Db\PdoRepository; |
6
|
|
|
use XHGui\Util; |
7
|
|
|
|
8
|
|
|
class PdoSaver implements SaverInterface |
9
|
|
|
{ |
10
|
|
|
/** @var PdoRepository */ |
11
|
|
|
private $db; |
12
|
|
|
|
13
|
|
|
public function __construct(PdoRepository $db) |
14
|
|
|
{ |
15
|
|
|
$this->db = $db; |
16
|
|
|
} |
17
|
|
|
|
18
|
|
|
public function save(array $data, string $id = null): string |
19
|
|
|
{ |
20
|
|
|
$main = $data['profile']['main()']; |
21
|
|
|
|
22
|
|
|
// build 'request_ts' and 'request_date' from 'request_ts_micro' |
23
|
|
|
$ts = $data['meta']['request_ts_micro']; |
24
|
|
|
$sec = $ts['sec']; |
25
|
|
|
$usec = $ts['usec']; |
26
|
|
|
|
27
|
|
|
$id = $id ?? Util::generateId(); |
28
|
|
|
$this->db->saveProfile([ |
29
|
|
|
'id' => $id, |
30
|
|
|
'profile' => json_encode($data['profile']), |
31
|
|
|
'url' => $data['meta']['url'], |
32
|
|
|
'SERVER' => json_encode($data['meta']['SERVER']), |
33
|
|
|
'GET' => json_encode($data['meta']['get']), |
34
|
|
|
'ENV' => json_encode($data['meta']['env']), |
35
|
|
|
'simple_url' => $data['meta']['simple_url'], |
36
|
|
|
'request_ts' => $sec, |
37
|
|
|
'request_ts_micro' => "$sec.$usec", |
38
|
|
|
'request_date' => date('Y-m-d', $sec), |
39
|
|
|
'main_wt' => $main['wt'], |
40
|
|
|
'main_ct' => $main['ct'], |
41
|
|
|
'main_cpu' => $main['cpu'], |
42
|
|
|
'main_mu' => $main['mu'], |
43
|
|
|
'main_pmu' => $main['pmu'], |
44
|
|
|
]); |
45
|
|
|
|
46
|
|
|
return $id; |
47
|
|
|
} |
48
|
|
|
} |
49
|
|
|
|