annotate vendor/symfony/http-kernel/Profiler/Profile.php @ 19:fa3358dc1485 tip

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