ZF-7600: Zend_Cache_Core::getIdsMatchingTags

Description

when I call getIds() on my Cache Object I get the right ids but when I call getIdsMatchingTags , it gives me the ids prefixed by the 'namespace' I have to strip it manually because load() on those ids do not load the right cache data.

Comments

I think I found the problem. in getIds() you have :

replacing

return $this->_backend->getIdsMatchingTags($tags);

line 448

by

  $array = $this->_backend->getIdsMatchingTags($tags);
  if ((!isset($this->_options['cache_id_prefix'])) || ($this->_options['cache_id_prefix'] == '')) return $array;
    // we need to remove cache_id_prefix from ids (see #ZF-6178)
    $res = array();
    while (list(,$id) = each($array)) {
        if (strpos($id, $this->_options['cache_id_prefix']) === 0) {
            $res[] = preg_replace("~^{$this->_options['cache_id_prefix']}~", '', $id);
        } else {
            $res[] = $id;
        }
    }
    return $res;

should work (see see #ZF-6178)

and same thing goes with getIdsNotMatchingTags

fixed in r21280 (trunk) and r21293 (1.10 branch)