Source of file TimeDataCollector.php
Size: 2,623 Bytes - Last Modified: 2013-07-17T08:22:21+02:00
/home/theseer/Downloads/Symfony/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/DataCollector/TimeDataCollector.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | <?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\HttpKernel\DataCollector; use Symfony\Component\HttpKernel\DataCollector\DataCollector; use Symfony\Component\HttpKernel\KernelInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; /** * TimeDataCollector. * * @author Fabien Potencier <fabien@symfony.com> */ class TimeDataCollector extends DataCollector { protected $kernel; public function __construct(KernelInterface $kernel = null) { $this->kernel = $kernel; } /** * {@inheritdoc} */ public function collect(Request $request, Response $response, \Exception $exception = null) { if (null !== $this->kernel) { $startTime = $this->kernel->getStartTime(); } else { $startTime = $request->server->get('REQUEST_TIME_FLOAT', $request->server->get('REQUEST_TIME')); } $this->data = array( 'start_time' => $startTime * 1000, 'events' => array(), ); } /** * Sets the request events. * * @param array $events The request events */ public function setEvents(array $events) { foreach ($events as $event) { $event->ensureStopped(); } $this->data['events'] = $events; } /** * Gets the request events. * * @return array The request events */ public function getEvents() { return $this->data['events']; } /** * Gets the request elapsed time. * * @return float The elapsed time */ public function getDuration() { $lastEvent = $this->data['events']['__section__']; return $lastEvent->getOrigin() + $lastEvent->getDuration() - $this->getStartTime(); } /** * Gets the initialization time. * * This is the time spent until the beginning of the request handling. * * @return float The elapsed time */ public function getInitTime() { return $this->data['events']['__section__']->getOrigin() - $this->getStartTime(); } /** * Gets the request time. * * @return integer The time */ public function getStartTime() { return $this->data['start_time']; } /** * {@inheritdoc} */ public function getName() { return 'time'; } } |