summaryrefslogtreecommitdiff
path: root/StorageAccess.php
diff options
context:
space:
mode:
authorKevin Chabowski <kevin@kch42.de>2014-05-18 00:25:49 +0200
committerKevin Chabowski <kevin@kch42.de>2014-05-18 00:25:49 +0200
commitfad93506cd56b976d1413ed5adef87701df715bd (patch)
treedd4f0fca57633dcfeb66622b4c20497090bfff16 /StorageAccess.php
parenta77a2ec58947f5fc7cb4023db3b8f8298e2f01f2 (diff)
downloadste-fad93506cd56b976d1413ed5adef87701df715bd.tar.gz
ste-fad93506cd56b976d1413ed5adef87701df715bd.tar.bz2
ste-fad93506cd56b976d1413ed5adef87701df715bd.zip
One file per class and new namespace.
We should be able to use a PSR4 autoloader (like composer's) now. ste.php is still there as a fallback for old applications.
Diffstat (limited to 'StorageAccess.php')
-rw-r--r--StorageAccess.php52
1 files changed, 52 insertions, 0 deletions
diff --git a/StorageAccess.php b/StorageAccess.php
new file mode 100644
index 0000000..2c4ba6c
--- /dev/null
+++ b/StorageAccess.php
@@ -0,0 +1,52 @@
+<?php
+
+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);
+}