-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSyncExecution.php
135 lines (112 loc) · 2.35 KB
/
SyncExecution.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?php
namespace Trellis\Salsify\Logger;
/**
* Class SyncExecution
* @package Trellis\Salsify\Logger
*/
class SyncExecution
{
/**
* @var
*/
private $_startTime;
/**
* @var
*/
private $_endTime;
/**
* SyncExecution constructor.
*/
public function __construct()
{
// set timezone
date_default_timezone_set('UTC');
}
// set the start time
/**
*
*/
public function start()
{
$this->_startTime = microtime(true);
}
// set the end time
/**
*
*/
public function end()
{
$this->_endTime = microtime(true);
}
// format start date and time
/**
* @return false|string
*/
public function getStartTime()
{
return $this->getDateTime($this->_startTime);
}
// format end date and time
/**
* @return bool|false|string
*/
public function getEndTime()
{
if (!$this->_endTime) {
return false;
}
return $this->getDateTime($this->_endTime);
}
// return time elapsed from start
/**
* @return mixed
*/
public function getElapsedTime()
{
return $this->getExecutionTime(microtime(true));
}
// return total execution time
/**
* @return bool
*/
public function getTotalExecutionTime()
{
if (!$this->_endTime) {
return false;
}
return $this->getExecutionTime($this->_endTime);
}
// return start time, stop time, and total execution time
/**
* @return array|bool
*/
public function getFullStats()
{
if (!$this->_endTime) {
return false;
}
$stats = [];
$stats['start_time'] = $this->getDateTime($this->_startTime);
$stats['end_time'] = $this->getDateTime($this->_endTime);
$stats['execution_time'] = $this->getExecutionTime($this->_endTime);
return $stats;
}
// format date and time
/**
* @param $time
* @return false|string
*/
private function getDateTime($time)
{
return date("Y-m-d H:i:s", $time);
}
// get execution time
/**
* @param $time
* @return mixed
*/
private function getExecutionTime($time)
{
return $time - $this->_startTime;
}
}