[ Index ]

PHP Cross Reference of Joomla 1.5.26 DE

title

Body

[close]

/libraries/joomla/cache/ -> storage.php (source)

   1  <?php
   2  /**
   3  * @version        $Id:storage.php 6961 2007-03-15 16:06:53Z tcp $
   4  * @package        Joomla.Framework
   5  * @subpackage    Cache
   6  * @copyright    Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
   7  * @license        GNU/GPL, see LICENSE.php
   8  * Joomla! is free software. This version may have been modified pursuant
   9  * to the GNU General Public License, and as distributed it includes or
  10  * is derivative of works licensed under the GNU General Public License or
  11  * other free or open source software licenses.
  12  * See COPYRIGHT.php for copyright notices and details.
  13  */
  14  
  15  // Check to ensure this file is within the rest of the framework
  16  defined('JPATH_BASE') or die();
  17  
  18  /**
  19   * Abstract cache storage handler
  20   *
  21   * @abstract
  22   * @package        Joomla.Framework
  23   * @subpackage    Cache
  24   * @since        1.5
  25   */
  26  class JCacheStorage extends JObject
  27  {
  28      /**
  29      * Constructor
  30      *
  31      * @access protected
  32      * @param array $options optional parameters
  33      */
  34  	function __construct( $options = array() )
  35      {
  36          $this->_application    = (isset($options['application'])) ? $options['application'] : null;
  37          $this->_language    = (isset($options['language'])) ? $options['language'] : 'en-GB';
  38          $this->_locking        = (isset($options['locking'])) ? $options['locking'] : true;
  39          $this->_lifetime    = (isset($options['lifetime'])) ? $options['lifetime'] : null;
  40          $this->_now        = (isset($options['now'])) ? $options['now'] : time();
  41  
  42          // Set time threshold value.  If the lifetime is not set, default to 60 (0 is BAD)
  43          // _threshold is now available ONLY as a legacy (it's deprecated).  It's no longer used in the core.
  44          if (empty($this->_lifetime)) {
  45              $this->_threshold = $this->_now - 60;
  46              $this->_lifetime = 60;
  47          } else {
  48              $this->_threshold = $this->_now - $this->_lifetime;
  49          }
  50      }
  51  
  52      /**
  53       * Returns a reference to a cache storage hanlder object, only creating it
  54       * if it doesn't already exist.
  55       *
  56       * @static
  57       * @param    string    $handler    The cache storage handler to instantiate
  58       * @return    object    A JCacheStorageHandler object
  59       * @since    1.5
  60       */
  61      function &getInstance($handler = 'file', $options = array())
  62      {
  63          static $now = null;
  64          if(is_null($now)) {
  65              $now = time();
  66          }
  67          $options['now'] = $now;
  68          //We can't cache this since options may change...
  69          $handler = strtolower(preg_replace('/[^A-Z0-9_\.-]/i', '', $handler));
  70          $class   = 'JCacheStorage'.ucfirst($handler);
  71          if(!class_exists($class))
  72          {
  73              $path = dirname(__FILE__).DS.'storage'.DS.$handler.'.php';
  74              if (file_exists($path) ) {
  75                  require_once($path);
  76              } else {
  77                  return JError::raiseWarning(500, 'Unable to load Cache Storage: '.$handler);
  78              }
  79          }
  80          $return = new $class($options);
  81          return $return;
  82      }
  83  
  84      /**
  85       * Get cached data by id and group
  86       *
  87       * @abstract
  88       * @access    public
  89       * @param    string    $id            The cache data id
  90       * @param    string    $group        The cache data group
  91       * @param    boolean    $checkTime    True to verify cache time expiration threshold
  92       * @return    mixed    Boolean false on failure or a cached data string
  93       * @since    1.5
  94       */
  95  	function get($id, $group, $checkTime)
  96      {
  97          return;
  98      }
  99  
 100      /**
 101       * Store the data to cache by id and group
 102       *
 103       * @abstract
 104       * @access    public
 105       * @param    string    $id        The cache data id
 106       * @param    string    $group    The cache data group
 107       * @param    string    $data    The data to store in cache
 108       * @return    boolean    True on success, false otherwise
 109       * @since    1.5
 110       */
 111  	function store($id, $group, $data)
 112      {
 113          return true;
 114      }
 115  
 116      /**
 117       * Remove a cached data entry by id and group
 118       *
 119       * @abstract
 120       * @access    public
 121       * @param    string    $id        The cache data id
 122       * @param    string    $group    The cache data group
 123       * @return    boolean    True on success, false otherwise
 124       * @since    1.5
 125       */
 126  	function remove($id, $group)
 127      {
 128          return true;
 129      }
 130  
 131      /**
 132       * Clean cache for a group given a mode.
 133       *
 134       * group mode        : cleans all cache in the group
 135       * notgroup mode    : cleans all cache not in the group
 136       *
 137       * @abstract
 138       * @access    public
 139       * @param    string    $group    The cache data group
 140       * @param    string    $mode    The mode for cleaning cache [group|notgroup]
 141       * @return    boolean    True on success, false otherwise
 142       * @since    1.5
 143       */
 144  	function clean($group, $mode)
 145      {
 146          return true;
 147      }
 148  
 149      /**
 150       * Garbage collect expired cache data
 151       *
 152       * @abstract
 153       * @access public
 154       * @return boolean  True on success, false otherwise.
 155       */
 156      function gc()
 157      {
 158          return true;
 159      }
 160  
 161      /**
 162       * Test to see if the storage handler is available.
 163       *
 164       * @abstract
 165       * @static
 166       * @access public
 167       * @return boolean  True on success, false otherwise.
 168       */
 169  	function test()
 170      {
 171          return true;
 172      }
 173  }


Generated: Wed Mar 28 15:54:07 2012 Cross-referenced by PHPXref 0.7.1