mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Removed the Model cache engine for architectural reasons, closes #4415
git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@6853 3807eeeb-6ff5-0310-8944-8be069107fe0
This commit is contained in:
parent
3db8b860d1
commit
5c1878afec
4 changed files with 0 additions and 319 deletions
|
@ -214,16 +214,6 @@
|
|||
* 'compress' => true, // [optional] compress data in Memcache (slower, but uses less memory)
|
||||
* )
|
||||
* );
|
||||
*
|
||||
* Cake Model
|
||||
* Cache::config('default', array('engine' => 'Model' //[required]
|
||||
* 'duration'=> 3600, //[optional]
|
||||
* 'probability'=> 100, //[optional]
|
||||
* 'className' => 'Cache', //[optional]
|
||||
* 'fields' => array('data' => 'data', 'expires' => 'expires'), //[optional]
|
||||
* 'serialize' => true, [optional]
|
||||
* )
|
||||
* );
|
||||
*/
|
||||
Cache::config('default', array('engine' => 'File'));
|
||||
?>
|
|
@ -214,16 +214,6 @@
|
|||
* 'compress' => true, // [optional] compress data in Memcache (slower, but uses less memory)
|
||||
* )
|
||||
* );
|
||||
*
|
||||
* Cake Model
|
||||
* Cache::config('default', array('engine' => 'Model' //[required]
|
||||
* 'duration'=> 3600, //[optional]
|
||||
* 'probability'=> 100, //[optional]
|
||||
* 'className' => 'Cache', //[optional]
|
||||
* 'fields' => array('data' => 'data', 'expires' => 'expires'), //[optional]
|
||||
* 'serialize' => true, [optional]
|
||||
* )
|
||||
* );
|
||||
*/
|
||||
Cache::config('default', array('engine' => 'File'));
|
||||
?>
|
152
cake/libs/cache/model.php
vendored
152
cake/libs/cache/model.php
vendored
|
@ -1,152 +0,0 @@
|
|||
<?php
|
||||
/* SVN FILE: $Id$ */
|
||||
/**
|
||||
* Database 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.
|
||||
* 1785 E. Sahara Avenue, Suite 490-204
|
||||
* Las Vegas, Nevada 89104
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @filesource
|
||||
* @copyright Copyright 2005-2008, Cake Software Foundation, Inc.
|
||||
* @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
|
||||
*/
|
||||
/**
|
||||
* Database Storage engine for cache
|
||||
*
|
||||
* @package cake
|
||||
* @subpackage cake.cake.libs.cache
|
||||
*/
|
||||
class ModelEngine extends CacheEngine {
|
||||
/**
|
||||
* settings
|
||||
* className = name of the model to use, default => Cache
|
||||
* fields = database fields that hold data and ttl, default => data, expires
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
var $settings = array();
|
||||
|
||||
/**
|
||||
* Model instance.
|
||||
*
|
||||
* @var object
|
||||
* @access private
|
||||
*/
|
||||
var $__Model = null;
|
||||
/**
|
||||
* Model instance.
|
||||
*
|
||||
* @var object
|
||||
* @access private
|
||||
*/
|
||||
var $__fields = array();
|
||||
/**
|
||||
* 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
|
||||
* @access public
|
||||
*/
|
||||
function init($settings) {
|
||||
parent::init($settings);
|
||||
$defaults = array('className'=> 'CacheModel', 'fields'=> array('data', 'expires'));
|
||||
$this->settings = array_merge($this->settings, $defaults, $settings);
|
||||
$className = $this->settings['className'];
|
||||
$this->__fields = $this->settings['fields'];
|
||||
if (App::import($className)) {
|
||||
$this->__Model = ClassRegistry::init($className);
|
||||
} else {
|
||||
$this->__Model = new Model(array('name' => $className));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* Garbage collection. Permanently remove all expired and deleted data
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
function gc() {
|
||||
return $this->__Model->deleteAll(array($this->__fields[1] => '<= '.time()));
|
||||
}
|
||||
/**
|
||||
* Write data for key into cache
|
||||
*
|
||||
* @param string $key Identifier for the data
|
||||
* @param mixed $data 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, &$data, $duration) {
|
||||
if (isset($this->settings['serialize'])) {
|
||||
$data = serialize($data);
|
||||
}
|
||||
if ($data === '') {
|
||||
return false;
|
||||
}
|
||||
$cache = array('id' => $key, $this->__fields[0] => $data, $this->__fields[1] => time() + $duration);
|
||||
$result = false;
|
||||
|
||||
if ($this->__Model->save($cache)) {
|
||||
$result = true;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
/**
|
||||
* 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) {
|
||||
$data = $this->__Model->field($this->__fields[0], array($this->__Model->primaryKey => $key, $this->__fields[1] => '> '.time()));
|
||||
if (!$data) {
|
||||
return false;
|
||||
}
|
||||
if (isset($this->settings['serialize'])) {
|
||||
return unserialize($data);
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
/**
|
||||
* 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 $this->__Model->del($key);
|
||||
}
|
||||
/**
|
||||
* Delete all keys from the cache
|
||||
*
|
||||
* @return boolean True if the cache was succesfully cleared, false otherwise
|
||||
* @access public
|
||||
*/
|
||||
function clear() {
|
||||
return $this->__Model->deleteAll('1=1');
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
147
cake/tests/cases/libs/cache/model.test.php
vendored
147
cake/tests/cases/libs/cache/model.test.php
vendored
|
@ -1,147 +0,0 @@
|
|||
<?php
|
||||
/* SVN FILE: $Id$ */
|
||||
/**
|
||||
* Short description for file.
|
||||
*
|
||||
* Long description for file
|
||||
*
|
||||
* PHP versions 4 and 5
|
||||
*
|
||||
* CakePHP(tm) Tests <https://trac.cakephp.org/wiki/Developement/TestSuite>
|
||||
* Copyright 2005-2008, Cake Software Foundation, Inc.
|
||||
* 1785 E. Sahara Avenue, Suite 490-204
|
||||
* Las Vegas, Nevada 89104
|
||||
*
|
||||
* Licensed under The Open Group Test Suite License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @filesource
|
||||
* @copyright Copyright 2005-2008, Cake Software Foundation, Inc.
|
||||
* @link https://trac.cakephp.org/wiki/Developement/TestSuite CakePHP(tm) Tests
|
||||
* @package cake.tests
|
||||
* @subpackage cake.tests.cases.libs.cache
|
||||
* @since CakePHP(tm) v 1.2.0.5434
|
||||
* @version $Revision$
|
||||
* @modifiedby $LastChangedBy$
|
||||
* @lastmodified $Date$
|
||||
* @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License
|
||||
*/
|
||||
uses('cache', 'cache' . DS . 'model');
|
||||
|
||||
class CacheTestModel extends CakeTestModel {
|
||||
|
||||
var $name = 'CacheTestModel';
|
||||
}
|
||||
/**
|
||||
* Short description for class.
|
||||
*
|
||||
* @package cake.tests
|
||||
* @subpackage cake.tests.cases.libs.cache
|
||||
*/
|
||||
class ModelEngineTest extends CakeTestCase {
|
||||
|
||||
var $fixtures = array('core.cache_test_model');
|
||||
|
||||
function skip() {
|
||||
$this->skipif (false, 'ModelEngineTest not implemented');
|
||||
}
|
||||
function setUp() {
|
||||
Cache::config('model');
|
||||
}
|
||||
function start() {
|
||||
parent::start();
|
||||
Cache::config('model', array('engine' => 'Model', //[required]
|
||||
'duration'=> 3600, //[optional]
|
||||
'probability'=> 100, //[optional]
|
||||
'className' => 'CacheTestModel', //[optional]
|
||||
'fields' => array('data', 'expires'), //[optional]
|
||||
'serialize' => true, //[optional]
|
||||
)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
function testSettings() {
|
||||
$settings = Cache::settings();
|
||||
$expecting = array('prefix' => 'cake_',
|
||||
'duration'=> 3600, //[optional]
|
||||
'probability'=> 100, //[optional]
|
||||
'className' => 'CacheTestModel', //[optional]
|
||||
'fields' => array('data', 'expires'), //[optional]
|
||||
'serialize' => true, //[optional]
|
||||
'engine' => 'Model'
|
||||
);
|
||||
$this->assertEqual($settings, $expecting);
|
||||
}
|
||||
|
||||
function testReadAndWriteCache() {
|
||||
$result = Cache::read('test');
|
||||
$expecting = '';
|
||||
$this->assertEqual($result, $expecting);
|
||||
|
||||
$data = 'this is a test of the emergency broadcasting system';
|
||||
$result = Cache::write('test', $data, 1);
|
||||
$this->assertTrue($result);
|
||||
|
||||
$result = Cache::read('test');
|
||||
$expecting = $data;
|
||||
$this->assertEqual($result, $expecting);
|
||||
}
|
||||
|
||||
function testExpiry() {
|
||||
sleep(2);
|
||||
$result = Cache::read('test');
|
||||
$this->assertFalse($result);
|
||||
|
||||
$data = 'this is a test of the emergency broadcasting system';
|
||||
$result = Cache::write('other_test', $data, 1);
|
||||
$this->assertTrue($result);
|
||||
|
||||
sleep(2);
|
||||
$result = Cache::read('other_test');
|
||||
$this->assertFalse($result);
|
||||
|
||||
$data = 'this is a test of the emergency broadcasting system';
|
||||
$result = Cache::write('other_test', $data, "+1 second");
|
||||
$this->assertTrue($result);
|
||||
|
||||
sleep(2);
|
||||
$result = Cache::read('other_test');
|
||||
$this->assertFalse($result);
|
||||
}
|
||||
|
||||
function testDeleteCache() {
|
||||
$data = 'this is a test of the emergency broadcasting system';
|
||||
$result = Cache::write('delete_test', $data);
|
||||
$this->assertTrue($result);
|
||||
|
||||
$result = Cache::delete('delete_test');
|
||||
$this->assertTrue($result);
|
||||
}
|
||||
|
||||
function testDeleteAllCache() {
|
||||
$data = 'this is a test of the emergency broadcasting system';
|
||||
$result = Cache::write('delete_test_1', $data);
|
||||
$this->assertTrue($result);
|
||||
|
||||
$data = 'this is a test of the emergency broadcasting system';
|
||||
$result = Cache::write('delete_test_2', $data);
|
||||
$this->assertTrue($result);
|
||||
|
||||
$data = 'this is a test of the emergency broadcasting system';
|
||||
$result = Cache::write('delete_test_3', $data);
|
||||
$this->assertTrue($result);
|
||||
|
||||
$data = 'this is a test of the emergency broadcasting system';
|
||||
$result = Cache::write('delete_test_4', $data);
|
||||
$this->assertTrue($result);
|
||||
|
||||
$result = Cache::clear();
|
||||
$this->assertTrue($result);
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
Cache::config('default');
|
||||
}
|
||||
}
|
||||
?>
|
Loading…
Reference in a new issue