Voce Group Keys

0

Gives functions to use to generate strings to use as keys for caching. Keys are generated based on a passed in name and zero or more groups. Providing the same name and groups will retu

Version
Last updated
Active installations
WordPress Version
Tested up to
Rating
Total ratings
Tag
This plugin is outdated and might not be supported anymore.

Description

Gives functions to use to generate strings to use as keys for caching. Keys are generated based on a passed in name and
zero or more groups. Providing the same name and groups will return the same key until the entire cache is cleared
or the cache for a specific group name is cleared.

Usage

$key: STRING
$groups: STRING|ARRAY

<?php
if ( class_exists( 'Voce_Group_Keys' ) ) {

    // Get a key for $key that is in the $groups group(s)
    voce_get_cache_key( $key, $groups );

    // Clear the keys for $groups
    // If multiple groups are specified, keys in any of the specified groups will be cleared
    voce_clear_group_cache( $groups );

    // Clear all keys
    voce_clear_all_group_cache();
}

Example 1

<?php
if ( class_exists( 'Voce_Group_Keys' ) ) {

    // Get a key without a group
    echo voce_get_cache_key( 'data' );  // data_4942b011eb

    // Get keys in a single group
    echo voce_get_cache_key( 'data', 'people' );  // data_9915443f5c
    echo voce_get_cache_key( 'more-data', 'people' );  // more-data_9915443f5c

    // The same key will be returned
    echo voce_get_cache_key( 'data', 'people' );  // data_9915443f5c

    // Clear keys in the 'people' group
    voce_clear_group_cache( 'people' );

    // After clearing keys, a new key is returned for keys using that group
    echo voce_get_cache_key( 'data', 'people' );  // data_77j18e728
    echo voce_get_cache_key( 'data' );  // data_4942b011eb

}

Example 2

<?php
if ( class_exists( 'Voce_Group_Keys' ) ) {

    // Set transients using multiple groups
    echo voce_get_cache_key( 'user-data', 'users' );  // user-data_9915443f5c
    echo voce_get_cache_key( 'post-data', 'posts' );  // post-data_85fb002156
    echo voce_get_cache_key( 'user-post-data', array( 'posts', 'users' ) );  // user-post-data_4aee2c2c89

    // Clear any keys using the 'posts' group
    voce_clear_group_cache( 'posts' );

    // New keys returned for anything in the 'posts' group
    echo voce_get_cache_key( 'user-data', 'users' );  // user-data_9915443f5c
    echo voce_get_cache_key( 'post-data', 'posts' );  // post-data_820dd0dfb0
    echo voce_get_cache_key( 'user-post-data', array( 'posts', 'users' ) );  // user-post-data_b7ac93f802

    // The order of groups is irrelevant
    echo voce_get_cache_key( 'user-post-data', array( 'users', 'posts' ) );  // user-post-data_b7ac93f802

    // Clear any keys in either the 'users' or 'posts' groups
    voce_clear_group_cache( array( 'users', 'posts' ) );

    // Clear all keys
    voce_clear_all_group_cache();
}