summaryrefslogtreecommitdiff
path: root/src/ste/StorageAccess.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/ste/StorageAccess.php')
-rw-r--r--src/ste/StorageAccess.php55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/ste/StorageAccess.php b/src/ste/StorageAccess.php
new file mode 100644
index 0000000..81f7439
--- /dev/null
+++ b/src/ste/StorageAccess.php
@@ -0,0 +1,55 @@
+<?php
+
+// File: StorageAccess.php
+
+// Namespace: kch42\ste
+namespace kch42\ste;
+
+/*
+ * Class: StorageAccess
+ * An interface.
+ * A StorageAccess implementation is used to access the templates from any storage.
+ * This means, that you are not limited to store the Templates inside directories, you can also use a database or something else.
+ */
+interface StorageAccess {
+ /*
+ * Constants: Template modes
+ *
+ * MODE_SOURCE - The Templates source
+ * MODE_TRANSCOMPILED - The transcompiled template
+ */
+ const MODE_SOURCE = 0;
+ const MODE_TRANSCOMPILED = 1;
+
+ /*
+ * Function: load
+ * Loading a template.
+ *
+ * Parameters:
+ * $tpl - The name of the template.
+ * &$mode - Which mode is preferred? One of the <Template modes>.
+ * If <MODE_SOURCE>, the raw sourcecode is expected, if <MODE_TRANSCOMPILED> the transcompiled template *as a callable function* (expecting an <STECore> instance as first parameter) is expected.
+ * If the transcompiled version is not available or older than the source, you can set this parameter to <MODE_SOURCE> and return the source.
+ *
+ * Throws:
+ * A <CantLoadTemplate> exception if the template could not be loaded.
+ *
+ * Returns:
+ * Either the sourcecode or a callable function (first, and only parameter: an <STECore> instance).
+ */
+ public function load($tpl, &$mode);
+
+ /*
+ * Function: save
+ * Saves a template.
+ *
+ * Throws:
+ * A <CantSaveTemplate> exception if the template could not be saved.
+ *
+ * Parameters:
+ * $tpl -The name of the template.
+ * $data - The data to be saved.
+ * $mode - A <Template mode> constant.
+ */
+ public function save($tpl, $data, $mode);
+}