GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — module-memcache/src/Codeception/Module/Memcache.php at master · Codeception/module-memcache Expand file tree/ Copy pathMemcache.phpMore file actions 179 lines (163 loc) · 4.82 KB / Copy pathMemcache.phpFile metadata and controls179 lines (163 loc) · 4.82 KB 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 <?php declare(strict_types=1); namespace Codeception\Module; use Codeception\Module; use Codeception\TestInterface; use Codeception\Exception\ModuleConfigException; use Memcached; /** * Connects to [memcached](https://www.memcached.org/) using either _Memcache_ or _Memcached_ extension. * * Performs a cleanup by flushing all values after each test run. * * ## Status * * * Maintainer: **davert** * * Stability: **beta** * * Contact: [email protected] * * ## Configuration * * * **`host`** (`string`, default `'localhost'`) - The memcached host * * **`port`** (`int`, default `11211`) - The memcached port * * ### Example (`unit.suite.yml`) * * ```yaml * modules: * - Memcache: * host: 'localhost' * port: 11211 * ``` * * Be sure you don't use the production server to connect. * * ## Public Properties * * * **memcache** - instance of _Memcache_ or _Memcached_ object */ class Memcache extends Module { public \Memcache|Memcached|null $memcache = null; /** * @var array<string, string|integer> */ protected array $config = [ 'host' => 'localhost', 'port' => 11211 ]; /** * Code to run before each test. * * @throws ModuleConfigException */ public function _before(TestInterface $test): void { if (class_exists('\Memcache')) { $this->memcache = new \Memcache; $this->memcache->connect($this->config['host'], $this->config['port']); } elseif (class_exists('\Memcached')) { $this->memcache = new Memcached; $this->memcache->addServer($this->config['host'], $this->config['port']); } else { throw new ModuleConfigException(__CLASS__, 'Memcache classes not loaded'); } } /** * Code to run after each test. */ public function _after(TestInterface $test): void { if (empty($this->memcache)) { return; } $this->memcache->flush(); if (get_class($this->memcache) == 'Memcache') { $this->memcache->close(); } elseif (get_class($this->memcache) == 'Memcached') { $this->memcache->quit(); } } /** * Grabs value from memcached by key. * * Example: * * ``` php * <?php * $users_count = $I->grabValueFromMemcached('users_count'); * ``` */ public function grabValueFromMemcached(string $key): mixed { $value = $this->memcache->get($key); $this->debugSection("Value", $value); return $value; } /** * Checks item in Memcached exists and the same as expected. * * Examples: * * ``` php * <?php * // With only one argument, only checks the key exists * $I->seeInMemcached('users_count'); * * // Checks a 'users_count' exists and has the value 200 * $I->seeInMemcached('users_count', 200); * ``` */ public function seeInMemcached(string $key, mixed $value = null): void { $actual = $this->memcache->get($key); $this->debugSection("Value", $actual); if (null === $value) { $this->assertNotFalse($actual, "Cannot find key '{$key}' in Memcached"); } else { $this->assertEquals($value, $actual, "Cannot find key '{$key}' in Memcached with the provided value"); } } /** * Checks item in Memcached doesn't exist or is the same as expected. * * Examples: * * ``` php * <?php * // With only one argument, only checks the key does not exist * $I->dontSeeInMemcached('users_count'); * * // Checks a 'users_count' exists does not exist or its value is not the one provided * $I->dontSeeInMemcached('users_count', 200); * ``` */ public function dontSeeInMemcached(string $key, mixed $value = null): void { $actual = $this->memcache->get($key); $this->debugSection("Value", $actual); if (null === $value) { $this->assertFalse($actual, "The key '{$key}' exists in Memcached"); } elseif (false !== $actual) { $this->assertEquals($value, $actual, "The key '{$key}' exists in Memcached with the provided value"); } } /** * Stores an item `$value` with `$key` on the Memcached server. */ public function haveInMemcached(string $key, mixed $value, int $expiration = 0): void { if (get_class($this->memcache) == 'Memcache') { $this->assertTrue($this->memcache->set($key, $value, 0, $expiration)); } elseif (get_class($this->memcache) == 'Memcached') { $this->assertTrue($this->memcache->set($key, $value, $expiration)); } } /** * Flushes all Memcached data. */ public function clearMemcache(): void { $this->memcache->flush(); } } |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |