Created
October 3, 2009 11:38
-
-
Save MSeven/200603 to your computer and use it in GitHub Desktop.
Zend Data cache Storage engine for Cakephp cache
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* SVN FILE: $Id$ */ | |
/** | |
* Zend Data Cache storage engine for cache. | |
* | |
* | |
* PHP versions 4 and 5 | |
* | |
* CakePHP(tm) : Rapid Development Framework (http://www.cakephp.org) | |
* Copyright 2005-2008, Cake Software Foundation, Inc. (http://www.cakefoundation.org) | |
* | |
* Licensed under The MIT License | |
* Redistributions of files must retain the above copyright notice. | |
* | |
* @filesource | |
* @copyright Copyright 2005-2008, Cake Software Foundation, Inc. (http://www.cakefoundation.org) | |
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm) Project | |
* @package cake | |
* @subpackage cake.cake.libs.cache | |
* @since CakePHP(tm) v 1.2.0.4933 | |
* @version $Revision$ | |
* @modifiedby $LastChangedBy$ | |
* @lastmodified $Date$ | |
* @license http://www.opensource.org/licenses/mit-license.php The MIT License | |
*/ | |
/** | |
* Zend Disk storage engine for cache | |
* | |
* @package cake | |
* @subpackage cake.cake.libs.cache | |
*/ | |
class ZendDiskEngine extends CacheEngine { | |
/** | |
* Initialize the Cache Engine | |
* | |
* Called automatically by the cache frontend | |
* To reinitialize the settings call Cache::engine('EngineName', [optional] settings = array()); | |
* | |
* @param array $setting array of setting for the engine | |
* @return boolean True if the engine has been successfully initialized, false if not | |
* @see CacheEngine::__defaults | |
* @access public | |
*/ | |
function init($settings = array()) { | |
parent::init(array_merge(array( | |
'engine' => 'ZendDisk', | |
'prefix' => Inflector::slug(APP_DIR) . '_', | |
'namespace' => 'CakePHP' | |
), $settings)); | |
return function_exists('zend_disk_cache_store'); | |
} | |
/** | |
* Write data for key into cache | |
* | |
* @param string $key Identifier for the data | |
* @param mixed $value Data to be cached | |
* @param integer $duration How long to cache the data, in seconds | |
* @return boolean True if the data was succesfully cached, false on failure | |
* @access public | |
*/ | |
function write($key, &$value, $duration) { | |
return zend_disk_cache_store($this->settings['namespace'] . '::' . $key, $value, $duration); | |
} | |
/** | |
* Read a key from the cache | |
* | |
* @param string $key Identifier for the data | |
* @return mixed The cached data, or false if the data doesn't exist, has expired, or if there was an error fetching it | |
* @access public | |
*/ | |
function read($key) { | |
return zend_disk_cache_fetch($this->settings['namespace'] . '::' . $key); | |
} | |
/** | |
* Delete a key from the cache | |
* | |
* @param string $key Identifier for the data | |
* @return boolean True if the value was succesfully deleted, false if it didn't exist or couldn't be removed | |
* @access public | |
*/ | |
function delete($key) { | |
return zend_disk_cache_delete($this->settings['namespace'] . '::' . $key); | |
} | |
/** | |
* Delete all keys from the cache | |
* | |
* @return boolean True if the cache was succesfully cleared, false otherwise | |
* @access public | |
*/ | |
function clear() { | |
return zend_disk_cache_clear($this->settings['namespace']); | |
} | |
} | |
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* SVN FILE: $Id$ */ | |
/** | |
* Zend Data Cache storage engine for cache. | |
* | |
* | |
* PHP versions 4 and 5 | |
* | |
* CakePHP(tm) : Rapid Development Framework (http://www.cakephp.org) | |
* Copyright 2005-2008, Cake Software Foundation, Inc. (http://www.cakefoundation.org) | |
* | |
* Licensed under The MIT License | |
* Redistributions of files must retain the above copyright notice. | |
* | |
* @filesource | |
* @copyright Copyright 2005-2008, Cake Software Foundation, Inc. (http://www.cakefoundation.org) | |
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm) Project | |
* @package cake | |
* @subpackage cake.cake.libs.cache | |
* @since CakePHP(tm) v 1.2.0.4933 | |
* @version $Revision$ | |
* @modifiedby $LastChangedBy$ | |
* @lastmodified $Date$ | |
* @license http://www.opensource.org/licenses/mit-license.php The MIT License | |
*/ | |
/** | |
* Zend Shared Memory storage engine for cache | |
* | |
* @package cake | |
* @subpackage cake.cake.libs.cache | |
*/ | |
class ZendSHMEngine extends CacheEngine { | |
/** | |
* Initialize the Cache Engine | |
* | |
* Called automatically by the cache frontend | |
* To reinitialize the settings call Cache::engine('EngineName', [optional] settings = array()); | |
* | |
* @param array $setting array of setting for the engine | |
* @return boolean True if the engine has been successfully initialized, false if not | |
* @see CacheEngine::__defaults | |
* @access public | |
*/ | |
function init($settings = array()) { | |
parent::init(array_merge(array( | |
'engine' => 'ZendSHM', | |
'prefix' => Inflector::slug(APP_DIR) . '_', | |
'namespace' => 'CakePHP' | |
), $settings)); | |
return function_exists('zend_shm_cache_store'); | |
} | |
/** | |
* Write data for key into cache | |
* | |
* @param string $key Identifier for the data | |
* @param mixed $value Data to be cached | |
* @param integer $duration How long to cache the data, in seconds | |
* @return boolean True if the data was succesfully cached, false on failure | |
* @access public | |
*/ | |
function write($key, &$value, $duration) { | |
return zend_shm_cache_store($this->settings['namespace'] . '::' . $key, $value, $duration); | |
} | |
/** | |
* Read a key from the cache | |
* | |
* @param string $key Identifier for the data | |
* @return mixed The cached data, or false if the data doesn't exist, has expired, or if there was an error fetching it | |
* @access public | |
*/ | |
function read($key) { | |
return zend_shm_cache_fetch($this->settings['namespace'] . '::' . $key); | |
} | |
/** | |
* Delete a key from the cache | |
* | |
* @param string $key Identifier for the data | |
* @return boolean True if the value was succesfully deleted, false if it didn't exist or couldn't be removed | |
* @access public | |
*/ | |
function delete($key) { | |
return zend_shm_cache_delete($this->settings['namespace'] . '::' . $key); | |
} | |
/** | |
* Delete all keys from the cache | |
* | |
* @return boolean True if the cache was succesfully cleared, false otherwise | |
* @access public | |
*/ | |
function clear() { | |
return zend_shm_cache_clear($this->settings['namespace']); | |
} | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment