|
@@ -0,0 +1,112 @@
|
|
|
|
|
+<?php
|
|
|
|
|
+/**
|
|
|
|
|
+ * ZeroBin
|
|
|
|
|
+ *
|
|
|
|
|
+ * a zero-knowledge paste bin
|
|
|
|
|
+ *
|
|
|
|
|
+ * @link http://sebsauvage.net/wiki/doku.php?id=php:zerobin
|
|
|
|
|
+ * @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
|
|
|
|
+ * @license http://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
|
|
|
|
+ * @version 0.17
|
|
|
|
|
+ */
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * persistence
|
|
|
|
|
+ *
|
|
|
|
|
+ * persists data in PHP files
|
|
|
|
|
+ */
|
|
|
|
|
+abstract class persistence
|
|
|
|
|
+{
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @access private
|
|
|
|
|
+ * @static
|
|
|
|
|
+ * @var string
|
|
|
|
|
+ */
|
|
|
|
|
+ private static $_path = 'data';
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * set the path
|
|
|
|
|
+ *
|
|
|
|
|
+ * @access public
|
|
|
|
|
+ * @static
|
|
|
|
|
+ * @param string $path
|
|
|
|
|
+ * @return void
|
|
|
|
|
+ */
|
|
|
|
|
+ public static function setPath($path)
|
|
|
|
|
+ {
|
|
|
|
|
+ self::$_path = $path;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * get the path
|
|
|
|
|
+ *
|
|
|
|
|
+ * @access public
|
|
|
|
|
+ * @static
|
|
|
|
|
+ * @param string $filename
|
|
|
|
|
+ * @return void
|
|
|
|
|
+ */
|
|
|
|
|
+ public static function getPath($filename = null)
|
|
|
|
|
+ {
|
|
|
|
|
+ if(strlen($filename)) {
|
|
|
|
|
+ return self::$_path . '/' . $filename;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return self::$_path;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * checks if the file exists
|
|
|
|
|
+ *
|
|
|
|
|
+ * @access protected
|
|
|
|
|
+ * @static
|
|
|
|
|
+ * @param string $filename
|
|
|
|
|
+ * @return bool
|
|
|
|
|
+ */
|
|
|
|
|
+ protected static function _exists($filename)
|
|
|
|
|
+ {
|
|
|
|
|
+ self::_initialize();
|
|
|
|
|
+ return is_file(self::$_path . '/' . $filename);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * prepares path for storage
|
|
|
|
|
+ *
|
|
|
|
|
+ * @access protected
|
|
|
|
|
+ * @static
|
|
|
|
|
+ * @return void
|
|
|
|
|
+ */
|
|
|
|
|
+ protected static function _initialize()
|
|
|
|
|
+ {
|
|
|
|
|
+ // Create storage directory if it does not exist.
|
|
|
|
|
+ if (!is_dir(self::$_path)) mkdir(self::$_path, 0705);
|
|
|
|
|
+
|
|
|
|
|
+ // Create .htaccess file if it does not exist.
|
|
|
|
|
+ $file = self::$_path . '/.htaccess';
|
|
|
|
|
+ if (!is_file($file))
|
|
|
|
|
+ {
|
|
|
|
|
+ file_put_contents(
|
|
|
|
|
+ $file,
|
|
|
|
|
+ 'Allow from none' . PHP_EOL .
|
|
|
|
|
+ 'Deny from all'. PHP_EOL
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * store the data
|
|
|
|
|
+ *
|
|
|
|
|
+ * @access protected
|
|
|
|
|
+ * @static
|
|
|
|
|
+ * @param string $filename
|
|
|
|
|
+ * @param string $data
|
|
|
|
|
+ * @return string
|
|
|
|
|
+ */
|
|
|
|
|
+ protected static function _store($filename, $data)
|
|
|
|
|
+ {
|
|
|
|
|
+ self::_initialize();
|
|
|
|
|
+ $file = self::$_path . '/' . $filename;
|
|
|
|
|
+ file_put_contents($file, $data);
|
|
|
|
|
+ chmod($file, 0705);
|
|
|
|
|
+ return $file;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|