ffc4090d21
Previously, one had to be careful to check if the debug.stopwatch service was available before using it. Otherwise, the application would break in the prod environment.
59 lines
1.2 KiB
PHP
59 lines
1.2 KiB
PHP
<?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\Bridge\Twig\Extension;
|
|
|
|
use Symfony\Component\Stopwatch\Stopwatch;
|
|
use Symfony\Bridge\Twig\TokenParser\StopwatchTokenParser;
|
|
|
|
/**
|
|
* Twig extension for the stopwatch helper.
|
|
*
|
|
* @author Wouter J <wouter@wouterj.nl>
|
|
*/
|
|
class StopwatchExtension extends \Twig_Extension
|
|
{
|
|
private $stopwatch;
|
|
|
|
/**
|
|
* @var bool
|
|
*/
|
|
private $enabled;
|
|
|
|
public function __construct(Stopwatch $stopwatch = null, $enabled = true)
|
|
{
|
|
$this->stopwatch = $stopwatch;
|
|
$this->enabled = $enabled;
|
|
}
|
|
|
|
public function getStopwatch()
|
|
{
|
|
return $this->stopwatch;
|
|
}
|
|
|
|
public function getTokenParsers()
|
|
{
|
|
return array(
|
|
/*
|
|
* {% stopwatch foo %}
|
|
* Some stuff which will be recorded on the timeline
|
|
* {% endstopwatch %}
|
|
*/
|
|
new StopwatchTokenParser($this->stopwatch !== null && $this->enabled),
|
|
);
|
|
}
|
|
|
|
public function getName()
|
|
{
|
|
return 'stopwatch';
|
|
}
|
|
}
|