From 7030fdd76759de41fd0937f78f7be392ed63ebfb Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Tue, 13 Oct 2015 08:43:15 +0200 Subject: [PATCH] simplified logic and improve perf slightly --- CHANGELOG | 1 + lib/Twig/Environment.php | 14 ++++---------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index ec589ec10..21b21f938 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,6 @@ * 1.22.3 (2015-XX-XX) + * improved performance when checking template freshness * changed template cache names to take into account the Twig C extension * 1.22.2 (2015-09-22) diff --git a/lib/Twig/Environment.php b/lib/Twig/Environment.php index a5b0883ba..02817b26d 100644 --- a/lib/Twig/Environment.php +++ b/lib/Twig/Environment.php @@ -455,15 +455,6 @@ class Twig_Environment */ public function isTemplateFresh($name, $time) { - if(0 === $this->lastModifiedExtension) { - foreach ($this->extensions as $extension) { - $r = new ReflectionObject($extension); - if (($extensionTime = filemtime($r->getFileName())) > $this->lastModifiedExtension) { - $this->lastModifiedExtension = $extensionTime; - } - } - } - return $this->lastModifiedExtension <= $time && $this->getLoader()->isFresh($name, $time); } @@ -770,7 +761,10 @@ class Twig_Environment throw new LogicException(sprintf('Unable to register extension "%s" as extensions have already been initialized.', $extension->getName())); } - $this->lastModifiedExtension = 0; + $r = new ReflectionObject($extension); + if (($extensionTime = filemtime($r->getFileName())) > $this->lastModifiedExtension) { + $this->lastModifiedExtension = $extensionTime; + } $this->extensions[$extension->getName()] = $extension; }