Version 1
[yaffs-website] / web / modules / contrib / devel / webprofiler / src / Frontend / PerformanceTimingData.php
1 <?php
2
3 namespace Drupal\webprofiler\Frontend;
4
5 /**
6  * Class PerformanceTimingData
7  */
8 class PerformanceTimingData {
9
10   /**
11    * @var array
12    */
13   private $data;
14
15   /**
16    * @param array $data
17    */
18   public function __construct($data) {
19     $this->data = $data;
20   }
21
22   /**
23    * @return int
24    */
25   public function getDNSTiming() {
26     if (isset($this->data['domainLookupEnd']) && isset($this->data['domainLookupStart'])) {
27       return $this->data['domainLookupEnd'] - $this->data['domainLookupStart'];
28     }
29     else {
30       return 0;
31     }
32   }
33
34   /**
35    * @return int
36    */
37   public function getTCPTiming() {
38     if (isset($this->data['connectEnd']) && isset($this->data['connectStart'])) {
39       return $this->data['connectEnd'] - $this->data['connectStart'];
40     }
41     else {
42       return 0;
43     }
44   }
45
46   /**
47    * @return int
48    */
49   public function getTtfbTiming() {
50     if (isset($this->data['responseStart']) && isset($this->data['connectEnd'])) {
51       return $this->data['responseStart'] - $this->data['connectEnd'];
52     }
53     else {
54       return 0;
55     }
56   }
57
58   /**
59    * @return int
60    */
61   public function getDataTiming() {
62     if (isset($this->data['responseEnd']) && isset($this->data['responseStart'])) {
63       return $this->data['responseEnd'] - $this->data['responseStart'];
64     }
65     else {
66       return 0;
67     }
68   }
69
70   /**
71    * @return int
72    */
73   public function getDomTiming() {
74     if (isset($this->data['loadEventStart']) && isset($this->data['responseEnd'])) {
75       return $this->data['loadEventStart'] - $this->data['responseEnd'];
76     }
77     else {
78       return 0;
79     }
80   }
81 }