Changeset 3801

Show
Ignore:
Timestamp:
05/21/08 05:08:13 (4 months ago)
Author:
lakiboy
Message:

SGL_Config#singleton() fix + added tests

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/0.6-bugfix/lib/SGL/Cache.php

    r3618 r3801  
    4545 * 
    4646 * @package SGL 
    47  * @author Demian Turner <demian@phpkitchen.com> 
     47 * @author Demian Turner <demian@phpkitchen.com> 
    4848 * @author Dmitri Lakachauskis <lakiboy83@gmail.com> 
    4949 */ 
     
    7373     * 
    7474     * @param mixed $type        Cache_Lite container. 
    75      *                           In BC mode flag to force boolean mode. 
     75     *                            In BC mode flag to force boolean mode. 
    7676     * @param array $aOptions    Options to override config values on the fly. 
    7777     * @param boolean $forceNew  Force cache even if not in caching mode. 
     
    8686 
    8787        // BC 
    88         if (is_bool($type) && $type) { 
    89             $forceNew = true; 
    90         } 
    91  
    92         if (!isset($aInstances[$type]) || $forceNew) { 
     88        if (is_bool($type)) { 
     89            if ($type) { 
     90                $forceNew = true; 
     91            } 
     92            $type = 'default'; 
     93        } 
     94        $key = $type . '-' . md5(serialize($aOptions)); 
     95 
     96        if (!isset($aInstances[$key]) || $forceNew) { 
    9397            $isEnabled = $forceNew ? true : SGL_Config::get('cache.enabled'); 
    9498            // basic options 
     
    110114            // override with specified options 
    111115            $aOptions = array_merge($aDefaultOptions, $aOptions); 
    112             $hash = md5(serialize($aOptions)); 
    113116            switch (strtolower($type)) { 
    114117                case 'output': 
     
    123126                    $className = 'SGL_Cache_Lite'; 
    124127            } 
    125             $key = $type .'-'.$hash; 
    126             $aInstances[$key] = new $className($aOptions); 
     128            $aInstances[$key] = & new $className($aOptions); 
    127129        } 
    128130        return $aInstances[$key];