summaryrefslogtreecommitdiff
path: root/inc/lib/Twig/CacheInterface.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/lib/Twig/CacheInterface.php')
-rw-r--r--inc/lib/Twig/CacheInterface.php58
1 files changed, 58 insertions, 0 deletions
diff --git a/inc/lib/Twig/CacheInterface.php b/inc/lib/Twig/CacheInterface.php
new file mode 100644
index 00000000..776808bf
--- /dev/null
+++ b/inc/lib/Twig/CacheInterface.php
@@ -0,0 +1,58 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Interface implemented by cache classes.
+ *
+ * It is highly recommended to always store templates on the filesystem to
+ * benefit from the PHP opcode cache. This interface is mostly useful if you
+ * need to implement a custom strategy for storing templates on the filesystem.
+ *
+ * @author Andrew Tch <andrew@noop.lv>
+ */
+interface Twig_CacheInterface
+{
+ /**
+ * Generates a cache key for the given template class name.
+ *
+ * @param string $name The template name
+ * @param string $className The template class name
+ *
+ * @return string
+ */
+ public function generateKey($name, $className);
+
+ /**
+ * Writes the compiled template to cache.
+ *
+ * @param string $key The cache key
+ * @param string $content The template representation as a PHP class
+ */
+ public function write($key, $content);
+
+ /**
+ * Loads a template from the cache.
+ *
+ * @param string $key The cache key
+ */
+ public function load($key);
+
+ /**
+ * Returns the modification timestamp of a key.
+ *
+ * @param string $key The cache key
+ *
+ * @return int
+ */
+ public function getTimestamp($key);
+}
+
+class_alias('Twig_CacheInterface', 'Twig\Cache\CacheInterface', false);