Phalcon\Cache\Backend\Database::queryKeys PHP Method

queryKeys() public method

public queryKeys ( string $prefix = null ) : array
$prefix string
return array
    public function queryKeys($prefix = null)
    {
        if (!$prefix) {
            $prefix = $this->_prefix;
        } else {
            $prefix = $this->getPrefixedIdentifier($prefix);
        }
        if (!empty($prefix)) {
            $sql = "SELECT key_name FROM {$this->table} WHERE key_name LIKE ? ORDER BY lifetime";
            $rs = $this->db->query($sql, [$prefix . '%']);
        } else {
            $sql = "SELECT key_name FROM {$this->table} ORDER BY lifetime";
            $rs = $this->db->query($sql);
        }
        $rs->setFetchMode(Db::FETCH_ASSOC);
        $keys = [];
        while ($row = $rs->fetch()) {
            $keys[] = !empty($prefix) ? str_replace($prefix, '', $row['key_name']) : $row['key_name'];
        }
        return $keys;
    }

Usage Example

Example #1
0
 protected function runTests(CacheBackend $backend, $lifetime = null)
 {
     $backend->save($this->key, $this->data, $lifetime);
     $this->assertTrue($backend->exists($this->key));
     $this->assertEquals($this->data, $backend->get($this->key));
     $this->assertNotEmpty($backend->queryKeys());
     $this->assertNotEmpty($backend->queryKeys('DB_'));
     $this->assertTrue($backend->delete($this->key));
     $this->assertFalse($backend->delete($this->key));
     if (null !== $lifetime) {
         $backend->save($this->key, $this->data, $lifetime);
         $this->assertTrue($backend->exists($this->key, $lifetime));
         $this->assertEquals($this->data, $backend->get($this->key, $lifetime));
         $backend->save($this->key, $this->data, -$lifetime);
         $this->assertFalse($backend->exists($this->key, -$lifetime));
     }
 }