Exemplo n.º 1
0
 protected function _touch(Request $request)
 {
     $key = $this->config('identifier');
     if (is_callable($key)) {
         $key = $key($request);
     }
     return Cache::increment($key, static::$cacheConfig);
 }
Exemplo n.º 2
0
 /**
  * Tests that configuring groups for stored keys return the correct values when read/written
  * Shows that altering the group value is equivalent to deleting all keys under the same
  * group
  *
  * @return void
  */
 public function testGroupReadWrite()
 {
     Cache::config('memcached_groups', ['engine' => 'Memcached', 'duration' => 3600, 'groups' => ['group_a', 'group_b'], 'prefix' => 'test_']);
     Cache::config('memcached_helper', ['engine' => 'Memcached', 'duration' => 3600, 'prefix' => 'test_']);
     $this->assertTrue(Cache::write('test_groups', 'value', 'memcached_groups'));
     $this->assertEquals('value', Cache::read('test_groups', 'memcached_groups'));
     Cache::increment('group_a', 1, 'memcached_helper');
     $this->assertFalse(Cache::read('test_groups', 'memcached_groups'));
     $this->assertTrue(Cache::write('test_groups', 'value2', 'memcached_groups'));
     $this->assertEquals('value2', Cache::read('test_groups', 'memcached_groups'));
     Cache::increment('group_b', 1, 'memcached_helper');
     $this->assertFalse(Cache::read('test_groups', 'memcached_groups'));
     $this->assertTrue(Cache::write('test_groups', 'value3', 'memcached_groups'));
     $this->assertEquals('value3', Cache::read('test_groups', 'memcached_groups'));
 }
Exemplo n.º 3
0
 /**
  * testIncrement method
  *
  * @return void
  */
 public function testIncrement()
 {
     $this->skipIf(!function_exists('apc_inc'), 'No apc_inc() function, cannot test increment().');
     $result = Cache::write('test_increment', 5, 'apc');
     $this->assertTrue($result);
     $result = Cache::increment('test_increment', 1, 'apc');
     $this->assertEquals(6, $result);
     $result = Cache::read('test_increment', 'apc');
     $this->assertEquals(6, $result);
     $result = Cache::increment('test_increment', 2, 'apc');
     $this->assertEquals(8, $result);
     $result = Cache::read('test_increment', 'apc');
     $this->assertEquals(8, $result);
 }
Exemplo n.º 4
0
 /**
  * Test write from a config that is undefined.
  *
  * @expectedException InvalidArgumentException
  * @return void
  */
 public function testIncrementNonExistingConfig()
 {
     $this->assertFalse(Cache::increment('key', 1, 'totally fake'));
 }
Exemplo n.º 5
0
 /**
  * testIncrement method
  *
  * @return void
  */
 public function testIncrement()
 {
     $result = Cache::write('test_increment', 5, 'xcache');
     $this->assertTrue($result);
     $result = Cache::increment('test_increment', 'xcache');
     $this->assertEquals(6, $result);
     $result = Cache::read('test_increment', 'xcache');
     $this->assertEquals(6, $result);
     $result = Cache::increment('test_increment', 2, 'xcache');
     $this->assertEquals(8, $result);
     $result = Cache::read('test_increment', 'xcache');
     $this->assertEquals(8, $result);
 }
Exemplo n.º 6
0
 /**
  * Atomically updates cache using default CakePHP increment offset 1.
  *
  * Please note that the cache key needs to be initialized to prevent
  * increment() failing on 0. A separate cache key is created to store
  * the interval expiration time in epoch.
  *
  * @return Cake\Cache\Cache
  */
 protected function _touch()
 {
     if (Cache::read($this->_identifier, static::$cacheConfig) === false) {
         Cache::write($this->_identifier, 0, static::$cacheConfig);
         Cache::write($this->_getCacheExpirationKey(), strtotime($this->config('interval'), time()), static::$cacheConfig);
     }
     return Cache::increment($this->_identifier, 1, static::$cacheConfig);
 }