Hi,

SiCo007 a écrit :
Hi, how do I 'easily' get the tags for a cache file now? It used to be a case
of each tag was it's own file, now I see they are stored in an array inside
a meta file.

Do I simply open each file or are there Zend_Cache methods to this for me? -
I didn't see them in the code so thought I'd check before re-inventing the
wheel!

Thanks

-----
Simon

http://www.ajb007.co.uk/


Starting with ZF 1.7 Preview Release, you can use the getTags() method on your cache object.

It works with backends which support the "extended interface" :
'File', 'Apc', 'TwoLevels', 'Memcached', 'Sqlite' (for the moment)

For your information, here is the extended interface :

   /**
    * Return an array of stored cache ids
    *
    * @return array array of stored cache ids (string)
    */
   public function getIds();
/**
    * Return an array of stored tags
    *
    * @return array array of stored tags (string)
    */
   public function getTags();
/**
    * Return an array of stored cache ids which match given tags
    *
    * In case of multiple tags, a logical AND is made between tags
    *
    * @param array $tags array of tags
    * @return array array of matching cache ids (string)
    */
   public function getIdsMatchingTags($tags = array());

   /**
    * Return an array of stored cache ids which don't match given tags
    *
    * In case of multiple tags, a logical OR is made between tags
    *
    * @param array $tags array of tags
    * @return array array of not matching cache ids (string)
*/ public function getIdsNotMatchingTags($tags = array()); /**
    * Return the filling percentage of the backend storage
    *
    * @return int integer between 0 and 100
    */
   public function getFillingPercentage();

   /**
    * Return an array of metadatas for the given cache id
    *
    * The array must include these keys :
    * - expire : the expire timestamp
    * - tags : a string array of tags
    * - mtime : timestamp of last modification time
    *
    * @param string $id cache id
    * @return array array of metadatas (false if the cache id is not found)
    */
   public function getMetadatas($id);
/**
    * Give (if possible) an extra lifetime to the given cache id
    *
    * @param string $id cache id
    * @param int $extraLifetime
    * @return boolean true if ok
    */
   public function touch($id, $extraLifetime);
/**
    * Return an associative array of capabilities (booleans) of the backend
    *
    * The array must include these keys :
    * - automatic_cleaning (is automating cleaning necessary)
    * - tags (are tags supported)
    * - expired_read (is it possible to read expired cache records
    *                 (for doNotTestCacheValidity option for example))
    * - priority does the backend deal with priority when saving
    * - infinite_lifetime (is infinite lifetime can work with this backend)
* - get_list (is it possible to get the list of cache ids and the complete list of tags)
    *
    * @return array associative of with capabilities
    */
   public function getCapabilities();
Regards,

Fabien

Reply via email to