paulgoughbooks_old
This repository has no backups
This repository's network speed is throttled to 100KB/sec
Upgrade your account to fix these warnings, or use backups.vc for automated backups
@ 2
paulgoughbooks_old / trunk / system / Test / Mock / MockCache.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 |
<?php namespace CodeIgniter\Test\Mock; use CodeIgniter\Cache\CacheInterface; class MockCache 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 array_key_exists($key, $this->cache) ? $this->cache[$key] : null; } //-------------------------------------------------------------------- /** * 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 boolean $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 integer $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 integer $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; } //-------------------------------------------------------------------- } |
Commits for paulgoughbooks_old/trunk/system/Test/Mock/MockCache.php
Revision | Author | Commited | Message |
---|---|---|---|
2 | tporter | Tue 03 Nov, 2020 08:50:21 +0000 | Migration of Paul Goughs Books site to Codeignitor 4 |