Exemplo n.º 1
0
 /**
  * Method for deletion keys by template
  *
  * ATTENTION: if key contains spaces, for example 'THIS IS KEY::ID:50d98ld',
  * then in cache it will be saved as 'THIS_IS_KEY::ID:50d98ld'. So, template
  * for that key deletion must be look like - 'THIS_IS_KEY'.
  * Deletion can be made by substring, containing in keys. For example
  * '_KEY::ID'.
  *
  * @param string $tpl Substring containing in needed keys
  * @return bool
  */
 public function delByTemplate($tpl)
 {
     try {
         $cache = new MemcacheRaw();
         $cache->delByTemplate($tpl)->disconnect();
         return true;
     } catch (Exception $e) {
         return false;
     }
 }
 /**
  * @covers Veles\Cache\Adapters\MemcacheRaw::getSlabs
  * @covers Veles\Cache\Adapters\MemcacheRaw::delByTemplate
  * @covers Veles\Cache\Adapters\MemcacheRaw::delete
  */
 public function testDelByTemplate()
 {
     $keys = [];
     $prefix = uniqid();
     for ($i = 0; $i < 5; ++$i) {
         $key = uniqid("VELES::UNIT-TEST::{$prefix}::");
         $value = uniqid();
         Cache::set($key, $value, 10);
         $keys[] = $key;
     }
     $template = "VELES::UNIT-TEST::{$prefix}::";
     $object = new MemcacheRaw();
     $result = $object->delByTemplate($template);
     $msg = 'MemcacheRaw::delByTemplate return wrong result!';
     $this->assertTrue($result instanceof MemcacheRaw, $msg);
     $expected = $result = false;
     foreach ($keys as $key) {
         if (Cache::has($key)) {
             $result = true;
             break;
         }
     }
     $msg = 'MemcacheRaw::delByTemplate malfunction!';
     $this->assertSame($expected, $result, $msg);
 }