-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Finishing up the rest of the View Cells stuff, including docs, tests,…
… and convenience methods.
- Loading branch information
1 parent
f66e96b
commit e10aa4b
Showing
7 changed files
with
504 additions
and
36 deletions.
There are no files selected for viewing
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
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,197 @@ | ||
<?php namespace CodeIgniter\Cache\Handlers; | ||
|
||
use CodeIgniter\Cache\CacheInterface; | ||
|
||
class MockHandler implements CacheInterface | ||
{ | ||
/** | ||
* Prefixed to all cache names. | ||
* | ||
* @var string | ||
*/ | ||
protected $prefix; | ||
|
||
/** | ||
* Mock cache storage. | ||
* @var array | ||
*/ | ||
protected $cache = []; | ||
|
||
//-------------------------------------------------------------------- | ||
|
||
/** | ||
* Takes care of any handler-specific setup that must be done. | ||
*/ | ||
public function initialize() | ||
{ | ||
// Not to see here... | ||
} | ||
|
||
//-------------------------------------------------------------------- | ||
|
||
/** | ||
* Attempts to fetch an item from the cache store. | ||
* | ||
* @param string $key Cache item name | ||
* | ||
* @return mixed | ||
*/ | ||
public function get(string $key) | ||
{ | ||
$key = $this->prefix.$key; | ||
|
||
return isset($this->cache[$key]) | ||
? $this->cache[$key] | ||
: false; | ||
} | ||
|
||
//-------------------------------------------------------------------- | ||
|
||
/** | ||
* Saves an item to the cache store. | ||
* | ||
* The $raw parameter is only utilized by Mamcache in order to | ||
* allow usage of increment() and decrement(). | ||
* | ||
* @param string $key Cache item name | ||
* @param $value the data to save | ||
* @param null $ttl Time To Live, in seconds (default 60) | ||
* @param bool $raw Whether to store the raw value. | ||
* | ||
* @return mixed | ||
*/ | ||
public function save(string $key, $value, int $ttl = 60, bool $raw = false) | ||
{ | ||
$key = $this->prefix.$key; | ||
|
||
$this->cache[$key] = $value; | ||
|
||
return true; | ||
} | ||
|
||
//-------------------------------------------------------------------- | ||
|
||
/** | ||
* Deletes a specific item from the cache store. | ||
* | ||
* @param string $key Cache item name | ||
* | ||
* @return mixed | ||
*/ | ||
public function delete(string $key) | ||
{ | ||
unset($this->cache[$key]); | ||
} | ||
|
||
//-------------------------------------------------------------------- | ||
|
||
/** | ||
* Performs atomic incrementation of a raw stored value. | ||
* | ||
* @param string $key Cache ID | ||
* @param int $offset Step/value to increase by | ||
* | ||
* @return mixed | ||
*/ | ||
public function increment(string $key, int $offset = 1) | ||
{ | ||
$key = $this->prefix.$key; | ||
|
||
$data = $this->cache[$key] ?: null; | ||
|
||
if (empty($data)) | ||
{ | ||
$data = 0; | ||
} | ||
elseif (! is_int($data)) | ||
{ | ||
return false; | ||
} | ||
|
||
return $this->save($key, $data+$offset); | ||
} | ||
|
||
//-------------------------------------------------------------------- | ||
|
||
/** | ||
* Performs atomic decrementation of a raw stored value. | ||
* | ||
* @param string $key Cache ID | ||
* @param int $offset Step/value to increase by | ||
* | ||
* @return mixed | ||
*/ | ||
public function decrement(string $key, int $offset = 1) | ||
{ | ||
$key = $this->prefix.$key; | ||
|
||
$data = $this->cache[$key] ?: null; | ||
|
||
if (empty($data)) | ||
{ | ||
$data = 0; | ||
} | ||
elseif (! is_int($data)) | ||
{ | ||
return false; | ||
} | ||
|
||
return $this->save($key, $data-$offset); | ||
} | ||
|
||
//-------------------------------------------------------------------- | ||
|
||
/** | ||
* Will delete all items in the entire cache. | ||
* | ||
* @return mixed | ||
*/ | ||
public function clean() | ||
{ | ||
$this->cache = []; | ||
} | ||
|
||
//-------------------------------------------------------------------- | ||
|
||
/** | ||
* Returns information on the entire cache. | ||
* | ||
* The information returned and the structure of the data | ||
* varies depending on the handler. | ||
* | ||
* @return mixed | ||
*/ | ||
public function getCacheInfo() | ||
{ | ||
return []; | ||
} | ||
|
||
//-------------------------------------------------------------------- | ||
|
||
/** | ||
* Returns detailed information about the specific item in the cache. | ||
* | ||
* @param string $key Cache item name. | ||
* | ||
* @return mixed | ||
*/ | ||
public function getMetaData(string $key) | ||
{ | ||
return false; | ||
} | ||
|
||
//-------------------------------------------------------------------- | ||
|
||
/** | ||
* Determines if the driver is supported on this system. | ||
* | ||
* @return boolean | ||
*/ | ||
public function isSupported(): bool | ||
{ | ||
return true; | ||
} | ||
|
||
//-------------------------------------------------------------------- | ||
|
||
} |
Oops, something went wrong.