PdoSaver::save()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 30

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 2
dl 0
loc 30
rs 9.44
c 0
b 0
f 0
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