Changeset 153 for trunk/lib


Ignore:
Timestamp:
Jun 7, 2006 8:41:19 PM (18 years ago)
Author:
scdev
Message:

Q - decided to use standard instantiation for Prefs and Cache instead of singleton methods.

Location:
trunk/lib
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/Cache.inc.php

    r152 r153  
    131131        }
    132132
    133         $key = md5($key);
     133        $keyhash = md5($key);
    134134        $var = serialize($var);
    135135        $var_len = strlen($var);
     
    146146
    147147        // Remove any value already stored under this key.
    148         unset($_SESSION[$this->_ns][$key]);
     148        unset($_SESSION[$this->_ns][$keyhash]);
    149149
    150150        // Continue to prune the cache if its size is greater than stack_size_limit, but keep at least min_items.
     
    154154
    155155        // Save this value under the specified key.
    156         $_SESSION[$this->_ns][$key] =& $var;
     156        $_SESSION[$this->_ns][$keyhash] =& $var;
    157157
    158158        if ($var_len >= 1024000) {
     
    174174    function get($key)
    175175    {
     176        $app =& App::getInstance();
     177       
    176178        if (true !== $this->getParam('enabled')) {
    177             return false;
    178         }
    179 
    180         $key = md5($key);
    181         if (isset($_SESSION[$this->_ns][$key])) {
     179            $app->logMsg(sprintf('Cache not enabled, not getting data.', null), LOG_DEBUG, __FILE__, __LINE__);
     180            return false;
     181        }
     182
     183        $keyhash = md5($key);
     184        if (isset($_SESSION[$this->_ns][$keyhash])) {
     185            $app->logMsg(sprintf('Retreiving %s from cache.', $key), LOG_DEBUG, __FILE__, __LINE__);
    182186            // Move the accessed cached datum to the top of the stack. Maybe somebody knows a better way to do this?
    183             $tmp =& $_SESSION[$this->_ns][$key];
    184             unset($_SESSION[$this->_ns][$key]);
    185             $_SESSION[$this->_ns][$key] =& $tmp;
     187            $tmp =& $_SESSION[$this->_ns][$keyhash];
     188            unset($_SESSION[$this->_ns][$keyhash]);
     189            $_SESSION[$this->_ns][$keyhash] =& $tmp;
    186190            // Return the unserialized datum.
    187             return unserialize($_SESSION[$this->_ns][$key]);
     191            return unserialize($_SESSION[$this->_ns][$keyhash]);
    188192        } else {
    189193            return false;
     
    203207        }
    204208
    205         $key = md5($key);
    206         return array_key_exists($key, $_SESSION[$this->_ns]);
     209        $keyhash = md5($key);
     210        return array_key_exists($keyhash, $_SESSION[$this->_ns]);
    207211    }
    208212
     
    215219    function delete($key)
    216220    {
    217         $key = md5($key);
    218         unset($_SESSION[$this->_ns][$key]);
     221        $keyhash = md5($key);
     222        unset($_SESSION[$this->_ns][$keyhash]);
    219223    }
    220224   
  • trunk/lib/PageNumbers.inc.php

    r152 r153  
    6565        // in special cases like using a /my/page/# scheme.
    6666        $this->url_base = $_SERVER['PHP_SELF'] . '?page_number=';
     67       
     68        $this->prefs = new Prefs();
     69        $this->prefs->setParam(array('persistent' => false));
    6770    }
    6871
     
    7275    function setPerPage($per_page, $default=25, $save_value=true)
    7376    {
    74         $prefs =& Prefs::getInstance($_SERVER['PHP_SELF']);
    75         $prefs->setParam(array('persistent' => false));
    76    
    7777        // (1) By provided argument, if valid.
    7878        // (2) By saved preference, if available.
     
    8282            $this->_per_page = $per_page;
    8383            if ($save_value) {
    84                 $prefs->set('items_per_page', $this->_per_page);
    85             }
    86         } else if ($save_value && $prefs->exists('items_per_page')) {
    87             $this->_per_page = (int)$prefs->get('items_per_page');
     84                $this->prefs->set('items_per_page', $this->_per_page);
     85            }
     86        } else if ($save_value && $this->prefs->exists('items_per_page')) {
     87            $this->_per_page = (int)$this->prefs->get('items_per_page');
    8888        } else if (is_numeric($default) && $default > 0) {
    8989            $this->_per_page = $default;
     
    9797    function setPageNumber($page_number, $save_value=true)
    9898    {
    99         $prefs =& Prefs::getInstance($_SERVER['PHP_SELF']);
    100         $prefs->setParam(array('persistent' => false));
    101    
    10299        // (1) By provided argument, if valid.
    103100        // (2) By saved preference, if available.
     
    111108            }
    112109            if ($save_value) {
    113                 $prefs->set('page_number', $this->current_page);
    114             }
    115         } else if ($save_value && $prefs->exists('page_number')) {
    116             $this->current_page = (int)$prefs->get('page_number');
     110                $this->prefs->set('page_number', $this->current_page);
     111            }
     112        } else if ($save_value && $this->prefs->exists('page_number')) {
     113            $this->current_page = (int)$this->prefs->get('page_number');
    117114        }
    118115        $this->set_page_number_initialized = true;
  • trunk/lib/Prefs.inc.php

    r152 r153  
    1414// Load preferences for the user's session.
    1515require_once 'codebase/lib/Prefs.inc.php';
    16 $prefs =& Prefs::getInstance('my-namespace');
     16$prefs = new Prefs('my-namespace');
    1717$prefs->setParam(array(
    1818    'persistent' => $auth->isLoggedIn(),
     
    7474            $this->setParam(array('create_table' => $app->getParam('db_create_tables')));
    7575        }
    76     }
    77 
    78     /**
    79      * This method enforces the singleton pattern for this class.
    80      *
    81      * @return  object  Reference to the global Prefs object.
    82      * @access  public
    83      * @static
    84      */
    85     function &getInstance($namespace='')
    86     {
    87         static $instances = array();
    88 
    89         if (!array_key_exists($namespace, $instances)) {
    90             $instances[$namespace] = new Prefs($namespace);
    91         }
    92 
    93         return $instances[$namespace];
    9476    }
    9577
  • trunk/lib/SortOrder.inc.php

    r152 r153  
    3939        $this->default_sort = $default_sort;
    4040        $this->default_order = $default_order;
     41       
     42        $this->prefs = new Prefs();
     43        $this->prefs->setParam(array('persistent' => false));
    4144    }
    4245
     
    6972    function setDefault($default_sort = '', $default_order = '')
    7073    {
    71         $prefs =& Prefs::getInstance($_SERVER['PHP_SELF']);
    72         $prefs->setParam(array('persistent' => false));
    73 
    7474        // Which column to sort by?
    7575        // (1) By GET or POST specification, if available.
     
    7979        if (!empty($new_sort_by)) {
    8080            $this->sort_by = $new_sort_by;
    81             $prefs->set('sort_by', $this->sort_by);
    82         } else if ($prefs->exists('sort_by')) {
    83             $this->sort_by = $prefs->get('sort_by');
     81            $this->prefs->set('sort_by', $this->sort_by);
     82        } else if ($this->prefs->exists('sort_by')) {
     83            $this->sort_by = $this->prefs->get('sort_by');
    8484        } else {
    8585            $this->sort_by = $default_sort;
     
    9393        if (!empty($new_order)) {
    9494            $this->order = $new_order;
    95             $prefs->set('sort_order', $this->order);
    96         } else if ($prefs->exists('sort_order')) {
    97             $this->order = $prefs->get('sort_order');
     95            $this->prefs->set('sort_order', $this->order);
     96        } else if ($this->prefs->exists('sort_order')) {
     97            $this->order = $this->prefs->get('sort_order');
    9898        } else {
    9999            $this->order = $default_order;
     
    112112    function set($sort = null, $order = null)
    113113    {
    114         $prefs =& Prefs::getInstance($_SERVER['PHP_SELF']);
    115         $prefs->setParam(array('persistent' => false));
    116 
    117114        // Set new sort value.
    118115        if (isset($sort)) {
    119116            $this->sort_by = $sort;
    120             $prefs->set('sort_by', $this->sort_by);
     117            $this->prefs->set('sort_by', $this->sort_by);
    121118        }
    122119
     
    124121        if (isset($order)) {
    125122            $this->order = $order;
    126             $prefs->set('sort_order', $this->order);
     123            $this->prefs->set('sort_order', $this->order);
    127124        }
    128125    }
Note: See TracChangeset for help on using the changeset viewer.