mirror of
				https://github.com/PrivateBin/PrivateBin.git
				synced 2025-10-31 17:21:00 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			176 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			176 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?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.15
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * zerobin_db
 | |
|  *
 | |
|  * Model for DB access, implemented as a singleton.
 | |
|  */
 | |
| class zerobin_db
 | |
| {
 | |
|     /*
 | |
|      * @access private
 | |
|      * @static
 | |
|      * @var PDO instance of database connection
 | |
|      */
 | |
|     private static $_db;
 | |
| 
 | |
| 	/**
 | |
|      * singleton instance
 | |
|      *
 | |
|      * @access private
 | |
|      * @static
 | |
|      * @var zerobin
 | |
|      */
 | |
|     private static $_instance = null;
 | |
| 
 | |
|     /**
 | |
|      * enforce singleton, disable constructor
 | |
|      *
 | |
|      * Instantiate using {@link getInstance()}, zerobin is a singleton object.
 | |
|      *
 | |
|      * @access protected
 | |
|      */
 | |
|     protected function __construct() {}
 | |
| 
 | |
|     /**
 | |
|      * enforce singleton, disable cloning
 | |
|      *
 | |
|      * Instantiate using {@link getInstance()}, zerobin is a singleton object.
 | |
|      *
 | |
|      * @access private
 | |
|      */
 | |
|     private function __clone() {}
 | |
| 
 | |
|     /**
 | |
|      * get instance of singleton
 | |
|      *
 | |
|      * @access public
 | |
|      * @static
 | |
|      * @return zerobin
 | |
|      */
 | |
|     public static function getInstance($options)
 | |
|     {
 | |
|         // if needed initialize the singleton
 | |
|         if(null === self::$_instance) {
 | |
|             self::$_instance = new self;
 | |
|             self::_init();
 | |
|         }
 | |
|         if (
 | |
|         	is_array($options) &&
 | |
|         	array_key_exists('dsn', $options) &&
 | |
|         	array_key_exists('usr', $options) &&
 | |
|         	array_key_exists('pwd', $options) &&
 | |
|         	array_key_exists('opt', $options)
 | |
|         ) self::$_db = new PDO(
 | |
|             $options['dsn'],
 | |
|             $options['usr'],
 | |
|             $options['pwd'],
 | |
|             $options['opt']
 | |
|         );
 | |
|         return self::$_instance;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Create a paste.
 | |
|      *
 | |
|      * @access public
 | |
|      * @param  string $pasteid
 | |
|      * @param  array  $paste
 | |
|      * @return int|false
 | |
|      */
 | |
|     public function create($pasteid, $paste)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Read a paste.
 | |
|      *
 | |
|      * @access public
 | |
|      * @param  string $pasteid
 | |
|      * @return string
 | |
|      */
 | |
|     public function read($pasteid)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Delete a paste and its discussion.
 | |
|      *
 | |
|      * @access public
 | |
|      * @param  string $pasteid
 | |
|      * @return void
 | |
|      */
 | |
|     public function delete($pasteid)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Test if a paste exists.
 | |
|      *
 | |
|      * @access public
 | |
|      * @param  string $dataid
 | |
|      * @return void
 | |
|      */
 | |
|     public function exists($pasteid)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Create a comment in a paste.
 | |
|      *
 | |
|      * @access public
 | |
|      * @param  string $pasteid
 | |
|      * @param  string $parentid
 | |
|      * @param  string $commentid
 | |
|      * @param  array  $comment
 | |
|      * @return int|false
 | |
|      */
 | |
|     public function createComment($pasteid, $parentid, $commentid, $comment)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Read all comments of paste.
 | |
|      *
 | |
|      * @access public
 | |
|      * @param  string $pasteid
 | |
|      * @return array
 | |
|      */
 | |
|     public function readComments($pasteid)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Test if a comment exists.
 | |
|      *
 | |
|      * @access public
 | |
|      * @param  string $dataid
 | |
|      * @param  string $parentid
 | |
|      * @param  string $commentid
 | |
|      * @return void
 | |
|      */
 | |
|     public function existsComment($pasteid, $parentid, $commentid)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * initialize zerobin
 | |
|      *
 | |
|      * @access private
 | |
|      * @static
 | |
|      * @return void
 | |
|      */
 | |
|     private static function _init()
 | |
|     {
 | |
|     }
 | |
| }
 |