/** * @return Zend_Cache_Core */ public static function getInstance() { if (null == self::$instance) { $frontendOptions = array('lifetime' => null, 'automaticSerialization' => true); // [TODO] Later this should support multiple servers from config file if (extension_loaded('memcache') && DEVBLOCKS_MEMCACHE_HOST && DEVBLOCKS_MEMCACHE_PORT) { $backendOptions = array('servers' => array(array('host' => DEVBLOCKS_MEMCACHE_HOST, 'port' => DEVBLOCKS_MEMCACHE_PORT, 'persistent' => true))); self::$instance = Zend_Cache::factory('Core', 'Memcached', $frontendOptions, $backendOptions); } if (null == self::$instance) { $backendOptions = array('cacheDir' => DEVBLOCKS_PATH . 'tmp/'); self::$instance = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions); } } return self::$instance; }
/** * @return _DevblocksCacheManager */ public static function getInstance() { if (null == self::$instance) { self::$instance = new _DevblocksCacheManager(); $options = array('key_prefix' => defined('DEVBLOCKS_CACHE_PREFIX') && DEVBLOCKS_CACHE_PREFIX ? DEVBLOCKS_CACHE_PREFIX : null); // Shared-memory cache if ((extension_loaded('memcache') || extension_loaded('memcached')) && defined('DEVBLOCKS_MEMCACHED_SERVERS') && DEVBLOCKS_MEMCACHED_SERVERS) { $pairs = DevblocksPlatform::parseCsvString(DEVBLOCKS_MEMCACHED_SERVERS); $servers = array(); if (is_array($pairs) && !empty($pairs)) { foreach ($pairs as $server) { list($host, $port) = explode(':', $server); if (empty($host) || empty($port)) { continue; } $servers[] = array('host' => $host, 'port' => $port); } } $options['servers'] = $servers; self::$_cacher = new _DevblocksCacheManagerMemcached($options); } // Disk-based cache (default) if (null == self::$_cacher) { $options['cache_dir'] = APP_TEMP_PATH; self::$_cacher = new _DevblocksCacheManagerDisk($options); } } return self::$instance; }
/** * @return _DevblocksCacheManager */ public static function getInstance() { if (null == self::$instance) { self::$instance = new _DevblocksCacheManager(); $frontendOptions = array('cache_id_prefix' => defined('DEVBLOCKS_CACHE_PREFIX') && DEVBLOCKS_CACHE_PREFIX ? DEVBLOCKS_CACHE_PREFIX : null, 'lifetime' => 21600, 'write_control' => false, 'automatic_serialization' => true); // Shared-memory cache if (extension_loaded('memcache') && defined('DEVBLOCKS_MEMCACHED_SERVERS') && DEVBLOCKS_MEMCACHED_SERVERS) { $pairs = DevblocksPlatform::parseCsvString(DEVBLOCKS_MEMCACHED_SERVERS); $servers = array(); if (is_array($pairs) && !empty($pairs)) { foreach ($pairs as $server) { list($host, $port) = explode(':', $server); if (empty($host) || empty($port)) { continue; } $servers[] = array('host' => $host, 'port' => $port, 'persistent' => true); } } $backendOptions = array('servers' => $servers); self::$_zend_cache = Zend_Cache::factory('Core', 'Memcached', $frontendOptions, $backendOptions); } // Disk-based cache (default) if (null == self::$_zend_cache) { $backendOptions = array('cache_dir' => APP_TEMP_PATH); self::$_zend_cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions); } } return self::$instance; }