comparison vendor/symfony/http-kernel/Profiler/Profile.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 1fec387a4317
comparison
equal deleted inserted replaced
-1:000000000000 0:4c8ae668cc8c
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12 namespace Symfony\Component\HttpKernel\Profiler;
13
14 use Symfony\Component\HttpKernel\DataCollector\DataCollectorInterface;
15
16 /**
17 * Profile.
18 *
19 * @author Fabien Potencier <fabien@symfony.com>
20 */
21 class Profile
22 {
23 private $token;
24
25 /**
26 * @var DataCollectorInterface[]
27 */
28 private $collectors = array();
29
30 private $ip;
31 private $method;
32 private $url;
33 private $time;
34 private $statusCode;
35
36 /**
37 * @var Profile
38 */
39 private $parent;
40
41 /**
42 * @var Profile[]
43 */
44 private $children = array();
45
46 /**
47 * Constructor.
48 *
49 * @param string $token The token
50 */
51 public function __construct($token)
52 {
53 $this->token = $token;
54 }
55
56 /**
57 * Sets the token.
58 *
59 * @param string $token The token
60 */
61 public function setToken($token)
62 {
63 $this->token = $token;
64 }
65
66 /**
67 * Gets the token.
68 *
69 * @return string The token
70 */
71 public function getToken()
72 {
73 return $this->token;
74 }
75
76 /**
77 * Sets the parent token.
78 *
79 * @param Profile $parent
80 */
81 public function setParent(Profile $parent)
82 {
83 $this->parent = $parent;
84 }
85
86 /**
87 * Returns the parent profile.
88 *
89 * @return self
90 */
91 public function getParent()
92 {
93 return $this->parent;
94 }
95
96 /**
97 * Returns the parent token.
98 *
99 * @return null|string The parent token
100 */
101 public function getParentToken()
102 {
103 return $this->parent ? $this->parent->getToken() : null;
104 }
105
106 /**
107 * Returns the IP.
108 *
109 * @return string The IP
110 */
111 public function getIp()
112 {
113 return $this->ip;
114 }
115
116 /**
117 * Sets the IP.
118 *
119 * @param string $ip
120 */
121 public function setIp($ip)
122 {
123 $this->ip = $ip;
124 }
125
126 /**
127 * Returns the request method.
128 *
129 * @return string The request method
130 */
131 public function getMethod()
132 {
133 return $this->method;
134 }
135
136 public function setMethod($method)
137 {
138 $this->method = $method;
139 }
140
141 /**
142 * Returns the URL.
143 *
144 * @return string The URL
145 */
146 public function getUrl()
147 {
148 return $this->url;
149 }
150
151 public function setUrl($url)
152 {
153 $this->url = $url;
154 }
155
156 /**
157 * Returns the time.
158 *
159 * @return int The time
160 */
161 public function getTime()
162 {
163 if (null === $this->time) {
164 return 0;
165 }
166
167 return $this->time;
168 }
169
170 /**
171 * @param int The time
172 */
173 public function setTime($time)
174 {
175 $this->time = $time;
176 }
177
178 /**
179 * @param int $statusCode
180 */
181 public function setStatusCode($statusCode)
182 {
183 $this->statusCode = $statusCode;
184 }
185
186 /**
187 * @return int
188 */
189 public function getStatusCode()
190 {
191 return $this->statusCode;
192 }
193
194 /**
195 * Finds children profilers.
196 *
197 * @return self[]
198 */
199 public function getChildren()
200 {
201 return $this->children;
202 }
203
204 /**
205 * Sets children profiler.
206 *
207 * @param Profile[] $children
208 */
209 public function setChildren(array $children)
210 {
211 $this->children = array();
212 foreach ($children as $child) {
213 $this->addChild($child);
214 }
215 }
216
217 /**
218 * Adds the child token.
219 *
220 * @param Profile $child
221 */
222 public function addChild(Profile $child)
223 {
224 $this->children[] = $child;
225 $child->setParent($this);
226 }
227
228 /**
229 * Gets a Collector by name.
230 *
231 * @param string $name A collector name
232 *
233 * @return DataCollectorInterface A DataCollectorInterface instance
234 *
235 * @throws \InvalidArgumentException if the collector does not exist
236 */
237 public function getCollector($name)
238 {
239 if (!isset($this->collectors[$name])) {
240 throw new \InvalidArgumentException(sprintf('Collector "%s" does not exist.', $name));
241 }
242
243 return $this->collectors[$name];
244 }
245
246 /**
247 * Gets the Collectors associated with this profile.
248 *
249 * @return DataCollectorInterface[]
250 */
251 public function getCollectors()
252 {
253 return $this->collectors;
254 }
255
256 /**
257 * Sets the Collectors associated with this profile.
258 *
259 * @param DataCollectorInterface[] $collectors
260 */
261 public function setCollectors(array $collectors)
262 {
263 $this->collectors = array();
264 foreach ($collectors as $collector) {
265 $this->addCollector($collector);
266 }
267 }
268
269 /**
270 * Adds a Collector.
271 *
272 * @param DataCollectorInterface $collector A DataCollectorInterface instance
273 */
274 public function addCollector(DataCollectorInterface $collector)
275 {
276 $this->collectors[$collector->getName()] = $collector;
277 }
278
279 /**
280 * Returns true if a Collector for the given name exists.
281 *
282 * @param string $name A collector name
283 *
284 * @return bool
285 */
286 public function hasCollector($name)
287 {
288 return isset($this->collectors[$name]);
289 }
290
291 public function __sleep()
292 {
293 return array('token', 'parent', 'children', 'collectors', 'ip', 'method', 'url', 'time', 'statusCode');
294 }
295 }