| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- <?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 . DIRECTORY_SEPARATOR . $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;
- }
- }
|