From fe78d5f0f0661e454a78478c187edd7633a71750 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sun, 22 Aug 2010 22:35:44 +0200 Subject: [PATCH] added a way to disable the profiler --- .../Component/HttpKernel/Profiler/Profiler.php | 11 +++++++++++ .../HttpKernel/Profiler/WebDebugToolbarListener.php | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Profiler/Profiler.php b/src/Symfony/Component/HttpKernel/Profiler/Profiler.php index eb77bcb676..9e4f98e52d 100644 --- a/src/Symfony/Component/HttpKernel/Profiler/Profiler.php +++ b/src/Symfony/Component/HttpKernel/Profiler/Profiler.php @@ -27,12 +27,14 @@ class Profiler implements \ArrayAccess protected $collectors; protected $response; protected $logger; + protected $enabled; public function __construct(ProfilerStorage $profilerStorage, LoggerInterface $logger = null) { $this->profilerStorage = $profilerStorage; $this->logger = $logger; $this->collectors = array(); + $this->enabled = true; } /** @@ -75,6 +77,11 @@ class Profiler implements \ArrayAccess return $profiler; } + public function disable() + { + $this->enabled = false; + } + /** * Collects data for the given Response. * @@ -82,6 +89,10 @@ class Profiler implements \ArrayAccess */ public function collect(Response $response) { + if (false === $this->enabled) { + return; + } + $this->response = $response; $this->response->headers->set('X-Debug-Token', $this->profilerStorage->getToken()); diff --git a/src/Symfony/Component/HttpKernel/Profiler/WebDebugToolbarListener.php b/src/Symfony/Component/HttpKernel/Profiler/WebDebugToolbarListener.php index 331c27831e..328e6c80ce 100644 --- a/src/Symfony/Component/HttpKernel/Profiler/WebDebugToolbarListener.php +++ b/src/Symfony/Component/HttpKernel/Profiler/WebDebugToolbarListener.php @@ -48,8 +48,8 @@ class WebDebugToolbarListener } $request = $event->getParameter('request'); - - if ('3' === substr($response->getStatusCode(), 0, 1) + if (!$response->headers->has('X-Debug-Token') + || '3' === substr($response->getStatusCode(), 0, 1) || ($response->headers->has('Content-Type') && false === strpos($response->headers->get('Content-Type'), 'html')) || 'html' !== $request->getRequestFormat() || $request->isXmlHttpRequest()