renamed Twig_ExtendedLoaderInterface to Twig_ExistsLoaderInterface
authorFabien Potencier <fabien.potencier@gmail.com>
Fri, 19 Oct 2012 12:32:48 +0000 (14:32 +0200)
committerFabien Potencier <fabien.potencier@gmail.com>
Fri, 19 Oct 2012 12:34:08 +0000 (14:34 +0200)
CHANGELOG
lib/Twig/ExistsLoaderInterface.php [moved from lib/Twig/ExtendedLoaderInterface.php with 80% similarity]
lib/Twig/Loader/Array.php
lib/Twig/Loader/Chain.php
lib/Twig/Loader/Filesystem.php
lib/Twig/Loader/String.php

index 3784432..db781f8 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,6 @@
 * 1.11.0 (2012-XX-XX)
 
- * n/a
+ * added Twig_ExistsLoaderInterface (implementing this interface in your loader make the chain loader much faster)
 
 * 1.10.3 (2012-10-19)
 
similarity index 80%
rename from lib/Twig/ExtendedLoaderInterface.php
rename to lib/Twig/ExistsLoaderInterface.php
index 8d59867..90709c6 100644 (file)
  */
 
 /**
- * Interface all loaders must implement in order to provide extra functionality
- * for the Twig core.
+ * Adds an exists() method for loaders.
  *
  * @package    twig
  * @author     Florin Patan <florinpatan@gmail.com>
  */
-interface Twig_ExtendedLoaderInterface
+interface Twig_ExistsLoaderInterface
 {
 
     /**
@@ -27,5 +26,4 @@ interface Twig_ExtendedLoaderInterface
      * @return boolean If the template source code is handled by this loader or not
      */
     public function exists($name);
-
 }
index dfaf701..e00910c 100644 (file)
@@ -20,7 +20,7 @@
  * @package    twig
  * @author     Fabien Potencier <fabien@symfony.com>
  */
-class Twig_Loader_Array implements Twig_LoaderInterface, Twig_ExtendedLoaderInterface
+class Twig_Loader_Array implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
 {
     protected $templates;
 
index fd767c2..1ab1853 100644 (file)
@@ -15,7 +15,7 @@
  * @package twig
  * @author  Fabien Potencier <fabien@symfony.com>
  */
-class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExtendedLoaderInterface
+class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
 {
     private $hasSourceCache = array();
     protected $loaders;
@@ -51,7 +51,7 @@ class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExtendedLoaderInte
     {
         $exceptions = array();
         foreach ($this->loaders as $loader) {
-            if ($loader instanceof Twig_ExtendedLoaderInterface && !$loader->exists($name)) {
+            if ($loader instanceof Twig_ExistsLoaderInterface && !$loader->exists($name)) {
                 continue;
             }
 
@@ -75,17 +75,15 @@ class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExtendedLoaderInte
         }
 
         foreach ($this->loaders as $loader) {
-            if ($loader instanceof Twig_ExtendedLoaderInterface) {
-                if ($loader->exists($name)) {
-                    return $this->hasSourceCache[$name] = true;
-                }
-            } else {
-                try {
-                    $loader->getSource($name);
-                    return $this->hasSourceCache[$name] = true;
-                } catch (Twig_Error_Loader $e) {
-
-                }
+            if ($loader instanceof Twig_ExistsLoaderInterface && $loader->exists($name)) {
+                return $this->hasSourceCache[$name] = true;
+            }
+
+            try {
+                $loader->getSource($name);
+
+                return $this->hasSourceCache[$name] = true;
+            } catch (Twig_Error_Loader $e) {
             }
         }
 
@@ -99,7 +97,7 @@ class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExtendedLoaderInte
     {
         $exceptions = array();
         foreach ($this->loaders as $loader) {
-            if ($loader instanceof Twig_ExtendedLoaderInterface && !$loader->exists($name)) {
+            if ($loader instanceof Twig_ExistsLoaderInterface && !$loader->exists($name)) {
                 continue;
             }
 
@@ -120,7 +118,7 @@ class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExtendedLoaderInte
     {
         $exceptions = array();
         foreach ($this->loaders as $loader) {
-            if ($loader instanceof Twig_ExtendedLoaderInterface && !$loader->exists($name)) {
+            if ($loader instanceof Twig_ExistsLoaderInterface && !$loader->exists($name)) {
                 continue;
             }
 
index 391facf..b201428 100644 (file)
@@ -15,7 +15,7 @@
  * @package    twig
  * @author     Fabien Potencier <fabien@symfony.com>
  */
-class Twig_Loader_Filesystem implements Twig_LoaderInterface, Twig_ExtendedLoaderInterface
+class Twig_Loader_Filesystem implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
 {
     protected $paths;
     protected $cache;
index 04742cd..5e1b82c 100644 (file)
@@ -24,7 +24,7 @@
  * @package    twig
  * @author     Fabien Potencier <fabien@symfony.com>
  */
-class Twig_Loader_String implements Twig_LoaderInterface, Twig_ExtendedLoaderInterface
+class Twig_Loader_String implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
 {
     /**
      * {@inheritdoc}