Просмотр исходного кода

cleaned up phpdoc comments, added README on how to install and use it

El RIDO 11 лет назад
Родитель
Сommit
24d18c5313
12 измененных файлов с 335 добавлено и 85 удалено
  1. 5 4
      .gitignore
  2. 19 0
      doc/README.md
  3. 166 51
      lib/RainTPL.php
  4. 2 0
      lib/filter.php
  5. 2 0
      lib/persistence.php
  6. 2 0
      lib/serversalt.php
  7. 2 0
      lib/trafficlimiter.php
  8. 96 13
      lib/vizhash16x16.php
  9. 17 4
      lib/zerobin.php
  10. 2 1
      lib/zerobin/abstract.php
  11. 5 2
      lib/zerobin/data.php
  12. 17 10
      lib/zerobin/db.php

+ 5 - 4
.gitignore

@@ -1,11 +1,12 @@
 # Ignore data/ and tmp/
 data/
 tmp/
-# Ignore unit testing logs and eclipse project files
+# Ignore for safety
+.htaccess
+.htpasswd
+# Ignore unit testing logs, api docs and eclipse project files
 tst/log/
+doc/
 .settings/
 .buildpath
 .project
-# Ignore for safety
-.htaccess
-.htpasswd

+ 19 - 0
doc/README.md

@@ -0,0 +1,19 @@
+Generating documentation
+========================
+
+In order to generate the documentation, you will need to install the following
+packages and its dependencies:
+* phpdoc
+* graphviz
+
+Details about [installing phpDocumentor](http://phpdoc.org/docs/latest/getting-started/installing.html)
+can be found in its own documentation.
+
+Example for Debian and Ubuntu:
+    $ sudo aptitude install pear graphviz
+    $ sudo pear channel-discover pear.phpdoc.org
+    $ sudo pear install phpdoc/phpDocumentor
+
+To generate the documentation, change into the main directory and run phpdoc:
+    $ cd ZeroBin
+    $ phpdoc -d lib/ -t doc/

+ 166 - 51
lib/RainTPL.php

@@ -1,15 +1,17 @@
 <?php
-
 /**
- *  RainTPL
- *  -------
- *  Realized by Federico Ulfo & maintained by the Rain Team
- *  Distributed under GNU/LGPL 3 License
+ * RainTPL
+ *
+ * Realized by Federico Ulfo & maintained by the Rain Team
+ * Distributed under GNU/LGPL 3 License
  *
- *  @version 2.7.2
+ * @version 2.7.2
  */
 
 
+/**
+ * RainTPL
+ */
 class RainTPL{
 
 	// -------------------------
@@ -25,7 +27,9 @@ class RainTPL{
 
 
 		/**
-		 * Cache directory. Is the directory where RainTPL will compile the template and save the cache
+		 * Cache directory
+		 *
+		 * Is the directory where RainTPL will compile the template and save the cache
 		 *
 		 * @var string
 		 */
@@ -33,7 +37,9 @@ class RainTPL{
 
 
 		/**
-		 * Template base URL. RainTPL will add this URL to the relative paths of element selected in $path_replace_list.
+		 * Template base URL
+		 *
+		 * RainTPL will add this URL to the relative paths of element selected in $path_replace_list.
 		 *
 		 * @var string
 		 */
@@ -41,7 +47,7 @@ class RainTPL{
 
 
 		/**
-		 * Template extension.
+		 * Template extension
 		 *
 		 * @var string
 		 */
@@ -49,10 +55,12 @@ class RainTPL{
 
 
 		/**
-		 * Path replace is a cool features that replace all relative paths of images (<img src="...">), stylesheet (<link href="...">), script (<script src="...">) and link (<a href="...">)
+		 * Should the path be replaced
+		 *
+		 * Path replace is a cool features that replace all relative paths of images (&lt;img src="..."&gt;), stylesheet (&lt;link href="..."&gt;), script (&lt;script src="..."&gt;) and link (&lt;a href="..."&gt;)
 		 * Set true to enable the path replace.
 		 *
-		 * @var unknown_type
+		 * @var boolean
 		 */
 		static $path_replace = true;
 
@@ -69,22 +77,25 @@ class RainTPL{
 		/**
 		 * You can define in the black list what string are disabled into the template tags
 		 *
-		 * @var unknown_type
+		 * @var array
 		 */
 		static $black_list = array( '\$this', 'raintpl::', 'self::', '_SESSION', '_SERVER', '_ENV',  'eval', 'exec', 'unlink', 'rmdir' );
 
 
 		/**
-		 * Check template.
+		 * Check template
+		 * 
 		 * true: checks template update time, if changed it compile them
 		 * false: loads the compiled template. Set false if server doesn't have write permission for cache_directory.
 		 *
+		 * @var bool
 		 */
 		static $check_template_update = true;
 
 
 		/**
 		 * PHP tags <? ?>
+		 *
 		 * True: php tags are enabled into the template
 		 * False: php tags are disabled into the template and rendered as html
 		 *
@@ -94,7 +105,8 @@ class RainTPL{
 
 
 		/**
-		 * Debug mode flag.
+		 * Debug mode flag
+		 *
 		 * True: debug mode is used, syntax errors are displayed directly in template. Execution of script is not terminated.
 		 * False: exception is thrown on found error.
 		 *
@@ -116,17 +128,44 @@ class RainTPL{
 		 */
 		public $var = array();
 
-		protected $tpl = array(),		// variables to keep the template directories and info
-				  $cache = false,		// static cache enabled / disabled
-                  $cache_id = null;       // identify only one cache
+		/**
+		 * variables to keep the template directories and info
+		 *
+		 * @var array
+		 */
+		protected $tpl = array();		// 
 
-                protected static $config_name_sum = array();   // takes all the config to create the md5 of the file
+		/**
+		 * static cache enabled / disabled
+		 *
+		 * @var bool
+		 */
+		protected $cache = false;
+
+		/**
+		 * identify only one cache
+		 *
+		 * @var string
+		 */
+		protected $cache_id = '';
+
+		/**
+		 * takes all the config to create the md5 of the file
+		 *
+		 * @var array the file
+		 */
+        protected static $config_name_sum = array();
 
 	// -------------------------
 
 
 
-	const CACHE_EXPIRE_TIME = 3600; // default cache expire time = hour
+	/**
+	 * default cache expire time = hour
+	 *
+	 * @const int
+	 */
+	const CACHE_EXPIRE_TIME = 3600;
 
 
 
@@ -134,11 +173,11 @@ class RainTPL{
 	 * Assign variable
 	 * eg. 	$t->assign('name','mickey');
 	 *
-	 * @param mixed $variable_name Name of template variable or associative array name/value
-	 * @param mixed $value value assigned to this variable. Not set if variable_name is an associative array
+	 * @access public
+	 * @param  mixed $variable_name Name of template variable or associative array name/value
+	 * @param  mixed $value value assigned to this variable. Not set if variable_name is an associative array
 	 */
-
-	function assign( $variable, $value = null ){
+	public function assign( $variable, $value = null ){
 		if( is_array( $variable ) )
 			$this->var += $variable;
 		else
@@ -152,12 +191,12 @@ class RainTPL{
 	 * eg. 	$html = $tpl->draw( 'demo', TRUE ); // return template in string
 	 * or 	$tpl->draw( $tpl_name ); // echo the template
 	 *
-	 * @param string $tpl_name  template to load
-	 * @param boolean $return_string  true=return a string, false=echo the template
+	 * @access public
+	 * @param  string $tpl_name  template to load
+	 * @param  boolean $return_string  true=return a string, false=echo the template
 	 * @return string
 	 */
-
-	function draw( $tpl_name, $return_string = false ){
+	public function draw( $tpl_name, $return_string = false ){
 
 		try {
 			// compile the template if necessary and set the template filepath
@@ -211,12 +250,13 @@ class RainTPL{
 	/**
 	 * If exists a valid cache for this template it returns the cache
 	 *
-	 * @param string $tpl_name Name of template (set the same of draw)
-	 * @param int $expiration_time Set after how many seconds the cache expire and must be regenerated
+	 * @access public
+	 * @param  string $tpl_name Name of template (set the same of draw)
+	 * @param  int $expiration_time Set after how many seconds the cache expire and must be regenerated
+	 * @param  string $cache_id Suffix to be used when writing file to cache (optional)
 	 * @return string it return the HTML or null if the cache must be recreated
 	 */
-
-	function cache( $tpl_name, $expire_time = self::CACHE_EXPIRE_TIME, $cache_id = null ){
+	public function cache( $tpl_name, $expire_time = self::CACHE_EXPIRE_TIME, $cache_id = '' ){
 
         // set the cache_id
         $this->cache_id = $cache_id;
@@ -236,8 +276,12 @@ class RainTPL{
 	/**
 	 * Configure the settings of RainTPL
 	 *
+	 * @access public
+	 * @static
+	 * @param  array|string $setting array of settings or setting name
+	 * @param  mixed $value content to set in the setting (optional)
 	 */
-	static function configure( $setting, $value = null ){
+	public static function configure( $setting, $value = null ){
 		if( is_array( $setting ) )
 			foreach( $setting as $key => $value )
 				self::configure( $key, $value );
@@ -249,8 +293,14 @@ class RainTPL{
 
 
 
-	// check if has to compile the template
-	// return true if the template has changed
+	/**
+	 * Check if has to compile the template
+	 *
+	 * @access protected
+	 * @param  string $tpl_name template name to check
+	 * @throws RainTpl_NotFoundException
+	 * @return bool return true if the template has changed
+	 */
 	protected function check_template( $tpl_name ){
 
 		if( !isset($this->tpl['checked']) ){
@@ -280,16 +330,27 @@ class RainTPL{
 
 
 	/**
-	* execute stripslaches() on the xml block. Invoqued by preg_replace_callback function below
-	* @access protected
-	*/
+	 * execute stripslaches() on the xml block. Invoqued by preg_replace_callback function below
+	 *
+	 * @access protected
+	 * @param string $capture
+	 * @return string
+	 */
 	protected function xml_reSubstitution($capture) {
     		return "<?php echo '<?xml ".stripslashes($capture[1])." ?>'; ?>";
 	}
 
 	/**
 	 * Compile and write the compiled template file
+	 *
 	 * @access protected
+	 * @param  string $tpl_basename
+	 * @param  string $tpl_basedir
+	 * @param  string $tpl_filename
+	 * @param  string $cache_dir
+	 * @param  string $compiled_filename
+	 * @throws RainTpl_Exception
+	 * @return void
 	 */
 	protected function compileFile( $tpl_basename, $tpl_basedir, $tpl_filename, $cache_dir, $compiled_filename ){
 
@@ -328,7 +389,11 @@ class RainTPL{
 
 	/**
 	 * Compile template
+	 *
 	 * @access protected
+	 * @param  string $template_code
+	 * @param  string $tpl_basedir
+	 * @return string
 	 */
 	protected function compileTemplate( $template_code, $tpl_basedir ){
 
@@ -369,7 +434,11 @@ class RainTPL{
 
 	/**
 	 * Compile the code
+	 *
 	 * @access protected
+	 * @param  string $parsed_code
+	 * @throws RainTpl_SyntaxException
+	 * @return string
 	 */
 	protected function compileCode( $parsed_code ){
 
@@ -585,9 +654,12 @@ class RainTPL{
 
 
 	/**
-	 * Reduce a path, eg. www/library/../filepath//file => www/filepath/file
-	 * @param type $path
-	 * @return type
+	 * Reduce a path
+	 *
+	 * eg. www/library/../filepath//file => www/filepath/file
+	 *
+	 * @param string $path
+	 * @return string
 	 */
 	protected function reduce_path( $path ){
 		$path = str_replace( "://", "@not_replace@", $path );
@@ -599,13 +671,16 @@ class RainTPL{
 
 
 	/**
-	 * replace the path of image src, link href and a href.
+	 * replace the path of image src, link href and a href
+	 * 
 	 * url => template_dir/url
 	 * url# => url
 	 * http://url => http://url
 	 *
-	 * @param string $html
-	 * @return string html sostituito
+	 * @access protected
+	 * @param  string $html
+	 * @param  string $tpl_basedir
+	 * @return string html substitution
 	 */
 	protected function path_replace( $html, $tpl_basedir ){
 
@@ -655,16 +730,40 @@ class RainTPL{
 
 
 
-	// replace const
-	function const_replace( $html, $tag_left_delimiter, $tag_right_delimiter, $php_left_delimiter = null, $php_right_delimiter = null, $loop_level = null, $echo = null ){
+	/**
+	 * replace constants
+	 *
+	 * @access public
+	 * @param  string $html
+	 * @param  string $tag_left_delimiter
+	 * @param  string $tag_right_delimiter
+	 * @param  string $php_left_delimiter (optional)
+	 * @param  string $php_right_delimiter (optional)
+	 * @param  string $loop_level (optional)
+	 * @param  string $echo (optional)
+	 * @return string
+	 */
+	public function const_replace( $html, $tag_left_delimiter, $tag_right_delimiter, $php_left_delimiter = null, $php_right_delimiter = null, $loop_level = null, $echo = null ){
 		// const
 		return preg_replace( '/\{\#(\w+)\#{0,1}\}/', $php_left_delimiter . ( $echo ? " echo " : null ) . '\\1' . $php_right_delimiter, $html );
 	}
 
 
 
-	// replace functions/modifiers on constants and strings
-	function func_replace( $html, $tag_left_delimiter, $tag_right_delimiter, $php_left_delimiter = null, $php_right_delimiter = null, $loop_level = null, $echo = null ){
+	/**
+	 * replace functions/modifiers on constants and strings
+	 *
+	 * @access public
+	 * @param  string $html
+	 * @param  string $tag_left_delimiter
+	 * @param  string $tag_right_delimiter
+	 * @param  string $php_left_delimiter (optional)
+	 * @param  string $php_right_delimiter (optional)
+	 * @param  string $loop_level (optional)
+	 * @param  string $echo (optional)
+	 * @return string
+	 */
+	public function func_replace( $html, $tag_left_delimiter, $tag_right_delimiter, $php_left_delimiter = null, $php_right_delimiter = null, $loop_level = null, $echo = null ){
 
 		preg_match_all( '/' . '\{\#{0,1}(\"{0,1}.*?\"{0,1})(\|\w.*?)\#{0,1}\}' . '/', $html, $matches );
 
@@ -763,7 +862,20 @@ class RainTPL{
 
 
 
-	function var_replace( $html, $tag_left_delimiter, $tag_right_delimiter, $php_left_delimiter = null, $php_right_delimiter = null, $loop_level = null, $echo = null ){
+	/**
+	 * replace variables
+	 *
+	 * @access public
+	 * @param  string $html
+	 * @param  string $tag_left_delimiter
+	 * @param  string $tag_right_delimiter
+	 * @param  string $php_left_delimiter (optional)
+	 * @param  string $php_right_delimiter (optional)
+	 * @param  string $loop_level (optional)
+	 * @param  string $echo (optional)
+	 * @return string
+	 */
+	public function var_replace( $html, $tag_left_delimiter, $tag_right_delimiter, $php_left_delimiter = null, $php_right_delimiter = null, $loop_level = null, $echo = null ){
 
 		//all variables
 		if( preg_match_all( '/' . $tag_left_delimiter . '\$(\w+(?:\.\${0,1}[A-Za-z0-9_]+)*(?:(?:\[\${0,1}[A-Za-z0-9_]+\])|(?:\-\>\${0,1}[A-Za-z0-9_]+))*)(.*?)' . $tag_right_delimiter . '/', $html, $matches ) ){
@@ -876,8 +988,10 @@ class RainTPL{
 	/**
 	 * Check if function is in black list (sandbox)
 	 *
-	 * @param string $code
-	 * @param string $tag
+	 * @access protected
+	 * @param  string $code
+	 * @throws RainTpl_SyntaxException
+	 * @return void
 	 */
 	protected function function_check( $code ){
 
@@ -904,7 +1018,8 @@ class RainTPL{
 	/**
 	 * Prints debug info about exception or passes it further if debug is disabled.
 	 *
-	 * @param RainTpl_Exception $e
+	 * @access protected
+	 * @param  RainTpl_Exception $e
 	 * @return string
 	 */
 	protected function printDebug(RainTpl_Exception $e){

+ 2 - 0
lib/filter.php

@@ -55,6 +55,7 @@ class filter
      * validate paste ID
      *
      * @access public
+     * @static
      * @param  string $dataid
      * @return bool
      */
@@ -68,6 +69,7 @@ class filter
      * https://crackstation.net/hashing-security.htm?=rd#slowequals
      *
      * @access public
+     * @static
      * @param  string $a
      * @param  string $b
      * @return bool

+ 2 - 0
lib/persistence.php

@@ -18,6 +18,8 @@
 abstract class persistence
 {
     /**
+     * path in which to persist something
+     *
      * @access private
      * @static
      * @var    string

+ 2 - 0
lib/serversalt.php

@@ -23,6 +23,8 @@
 class serversalt extends persistence
 {
     /**
+     * generated salt
+     *
      * @access private
      * @static
      * @var    string

+ 2 - 0
lib/trafficlimiter.php

@@ -18,6 +18,8 @@
 class trafficlimiter extends persistence
 {
     /**
+     * time limit in seconds, defaults to 10s
+     *
      * @access private
      * @static
      * @var    int

+ 96 - 13
lib/vizhash16x16.php

@@ -24,22 +24,67 @@
 
 class vizhash16x16
 {
+    /**
+     * hash values
+     *
+     * @access private
+     * @var    array
+     */
     private $VALUES;
+
+    /**
+     * index of current value
+     *
+     * @access private
+     * @var    int
+     */
     private $VALUES_INDEX;
+
+    /**
+     * image width
+     *
+     * @access private
+     * @var    int
+     */
     private $width;
+
+    /**
+     * image height
+     *
+     * @access private
+     * @var    int
+     */
     private $height;
+
+    /**
+     * salt used when generating the image
+     *
+     * @access private
+     * @var    string
+     */
     private $salt;
-    function __construct()
+
+    /**
+     * constructor
+     *
+     * @access public
+     * @return void
+     */
+    public function __construct()
     {
-        $this->width=16;
-        $this->height=16;
-        $this->salt = serversalt::get();
+        $this->width  = 16;
+        $this->height = 16;
+        $this->salt   = serversalt::get();
     }
 
-    // Generate a 16x16 png corresponding to $text.
-    // Input: $text (string)
-    // Output: PNG data. Or empty string if GD is not available.
-    function generate($text)
+    /**
+     * Generate a 16x16 png corresponding to $text.
+     *
+     * @access public
+     * @param  string $text
+     * @return string PNG data. Or empty string if GD is not available.
+     */
+    public function generate($text)
     {
         if (!function_exists('gd_info')) return '';
 
@@ -85,7 +130,13 @@ class vizhash16x16
         return $imagedata;
     }
 
-    private function getInt() // Returns a single integer from the $VALUES array (0...255)
+    /**
+     * Returns a single integer from the $VALUES array (0...255)
+     *
+     * @access private
+     * @return int
+     */
+    private function getInt()
     {
         $v= $this->VALUES[$this->VALUES_INDEX];
         $this->VALUES_INDEX++;
@@ -93,18 +144,41 @@ class vizhash16x16
         return $v;
     }
 
-    private function getX() // Returns a single integer from the array (roughly mapped to image width)
+    /**
+     * Returns a single integer from the array (roughly mapped to image width)
+     *
+     * @access private
+     * @return int
+     */
+    private function getX()
     {
         return $this->width*$this->getInt()/256;
     }
 
-    private function getY() // Returns a single integer from the array (roughly mapped to image height)
+    /**
+     * Returns a single integer from the array (roughly mapped to image height)
+     *
+     * @access private
+     * @return int
+     */
+    private function getY()
     {
         return $this->height*$this->getInt()/256;
     }
 
-    # Gradient function taken from:
-    # http://www.supportduweb.com/scripts_tutoriaux-code-source-41-gd-faire-un-degrade-en-php-gd-fonction-degrade-imagerie.html
+    /**
+     * Gradient function
+     *
+     * taken from:
+     * http://www.supportduweb.com/scripts_tutoriaux-code-source-41-gd-faire-un-degrade-en-php-gd-fonction-degrade-imagerie.html
+     *
+     * @access private
+     * @param  resource $img
+     * @param  string $direction
+     * @param  array $color1
+     * @param  array $color2
+     * @return resource
+     */
     private function degrade($img,$direction,$color1,$color2)
     {
             if($direction=='h') { $size = imagesx($img); $sizeinv = imagesy($img); }
@@ -125,6 +199,15 @@ class vizhash16x16
             return $img;
     }
 
+    /**
+     * Draw a shape
+     *
+     * @access private
+     * @param  resource $image
+     * @param  int $action
+     * @param  int $color
+     * @return void
+     */
     private function drawshape($image,$action,$color)
     {
         switch($action%7)

+ 17 - 4
lib/zerobin.php

@@ -17,12 +17,16 @@
  */
 class zerobin
 {
-    /*
-     * @const string version
+    /**
+     * version
+     *
+     * @const string
      */
     const VERSION = 'Alpha 0.19';
 
     /**
+     * configuration array
+     *
      * @access private
      * @var    array
      */
@@ -31,26 +35,34 @@ class zerobin
     );
 
     /**
+     * data
+     *
      * @access private
      * @var    string
      */
     private $_data = '';
 
     /**
+     * error message
+     *
      * @access private
      * @var    string
      */
     private $_error = '';
 
     /**
+     * status message
+     *
      * @access private
      * @var    string
      */
     private $_status = '';
 
     /**
+     * data storage model
+     *
      * @access private
-     * @var    zerobin_data
+     * @var    zerobin_abstract
      */
     private $_model;
 
@@ -60,6 +72,7 @@ class zerobin
      * initializes and runs ZeroBin
      *
      * @access public
+     * @return void
      */
     public function __construct()
     {
@@ -128,7 +141,7 @@ class zerobin
      * get the model, create one if needed
      *
      * @access private
-     * @return zerobin_data
+     * @return zerobin_abstract
      */
     private function _model()
     {

+ 2 - 1
lib/zerobin/abstract.php

@@ -20,7 +20,7 @@ abstract class zerobin_abstract
 	/**
      * singleton instance
      *
-     * @access private
+     * @access protected
      * @static
      * @var zerobin
      */
@@ -49,6 +49,7 @@ abstract class zerobin_abstract
      *
      * @access public
      * @static
+     * @param  array $options
      * @return zerobin_abstract
      */
     public static function getInstance($options) {}

+ 5 - 2
lib/zerobin/data.php

@@ -17,10 +17,12 @@
  */
 class zerobin_data extends zerobin_abstract
 {
-    /*
+    /**
+     * directory where data is stored
+     *
      * @access private
      * @static
-     * @var string directory where data is stored
+     * @var string
      */
     private static $_dir = 'data/';
 
@@ -29,6 +31,7 @@ class zerobin_data extends zerobin_abstract
      *
      * @access public
      * @static
+     * @param  array $options
      * @return zerobin_data
      */
     public static function getInstance($options = null)

+ 17 - 10
lib/zerobin/db.php

@@ -17,31 +17,37 @@
  */
 class zerobin_db extends zerobin_abstract
 {
-    /*
-     * @access private
-     * @static
-     * @var array to cache select queries
+    /**
+     * cache for select queries
+     *
+     * @var array
      */
     private static $_cache = array();
 
-    /*
+    /**
+     * instance of database connection
+     *
      * @access private
      * @static
-     * @var PDO instance of database connection
+     * @var PDO
      */
     private static $_db;
 
-    /*
+    /**
+     * table prefix
+     *
      * @access private
      * @static
-     * @var string table prefix
+     * @var string
      */
     private static $_prefix = '';
 
-    /*
+    /**
+     * database type
+     *
      * @access private
      * @static
-     * @var string database type
+     * @var string
      */
     private static $_type = '';
 
@@ -50,6 +56,7 @@ class zerobin_db extends zerobin_abstract
      *
      * @access public
      * @static
+     * @param  array $options
      * @throws Exception
      * @return zerobin_db
      */