wp/wp-includes/cache-compat.php
changeset 19 3d72ae0968f4
parent 16 a86126ab1dd4
child 21 48c4eec2b7e6
equal deleted inserted replaced
18:be944660c56a 19:3d72ae0968f4
     1 <?php
     1 <?php
     2 /**
     2 /**
     3  * Object Cache API functions missing from 3rd party object caches.
     3  * Object Cache API functions missing from 3rd party object caches.
     4  *
     4  *
     5  * @link https://codex.wordpress.org/Class_Reference/WP_Object_Cache
     5  * @link https://developer.wordpress.org/reference/classes/wp_object_cache/
     6  *
     6  *
     7  * @package WordPress
     7  * @package WordPress
     8  * @subpackage Cache
     8  * @subpackage Cache
     9  */
     9  */
       
    10 
       
    11 if ( ! function_exists( 'wp_cache_add_multiple' ) ) :
       
    12 	/**
       
    13 	 * Adds multiple values to the cache in one call, if the cache keys don't already exist.
       
    14 	 *
       
    15 	 * Compat function to mimic wp_cache_add_multiple().
       
    16 	 *
       
    17 	 * @ignore
       
    18 	 * @since 6.0.0
       
    19 	 *
       
    20 	 * @see wp_cache_add_multiple()
       
    21 	 *
       
    22 	 * @param array  $data   Array of keys and values to be added.
       
    23 	 * @param string $group  Optional. Where the cache contents are grouped. Default empty.
       
    24 	 * @param int    $expire Optional. When to expire the cache contents, in seconds.
       
    25 	 *                       Default 0 (no expiration).
       
    26 	 * @return bool[] Array of return values, grouped by key. Each value is either
       
    27 	 *                true on success, or false if cache key and group already exist.
       
    28 	 */
       
    29 	function wp_cache_add_multiple( array $data, $group = '', $expire = 0 ) {
       
    30 		$values = array();
       
    31 
       
    32 		foreach ( $data as $key => $value ) {
       
    33 			$values[ $key ] = wp_cache_add( $key, $value, $group, $expire );
       
    34 		}
       
    35 
       
    36 		return $values;
       
    37 	}
       
    38 endif;
       
    39 
       
    40 if ( ! function_exists( 'wp_cache_set_multiple' ) ) :
       
    41 	/**
       
    42 	 * Sets multiple values to the cache in one call.
       
    43 	 *
       
    44 	 * Differs from wp_cache_add_multiple() in that it will always write data.
       
    45 	 *
       
    46 	 * Compat function to mimic wp_cache_set_multiple().
       
    47 	 *
       
    48 	 * @ignore
       
    49 	 * @since 6.0.0
       
    50 	 *
       
    51 	 * @see wp_cache_set_multiple()
       
    52 	 *
       
    53 	 * @param array  $data   Array of keys and values to be set.
       
    54 	 * @param string $group  Optional. Where the cache contents are grouped. Default empty.
       
    55 	 * @param int    $expire Optional. When to expire the cache contents, in seconds.
       
    56 	 *                       Default 0 (no expiration).
       
    57 	 * @return bool[] Array of return values, grouped by key. Each value is either
       
    58 	 *                true on success, or false on failure.
       
    59 	 */
       
    60 	function wp_cache_set_multiple( array $data, $group = '', $expire = 0 ) {
       
    61 		$values = array();
       
    62 
       
    63 		foreach ( $data as $key => $value ) {
       
    64 			$values[ $key ] = wp_cache_set( $key, $value, $group, $expire );
       
    65 		}
       
    66 
       
    67 		return $values;
       
    68 	}
       
    69 endif;
    10 
    70 
    11 if ( ! function_exists( 'wp_cache_get_multiple' ) ) :
    71 if ( ! function_exists( 'wp_cache_get_multiple' ) ) :
    12 	/**
    72 	/**
    13 	 * Retrieves multiple values from the cache in one call.
    73 	 * Retrieves multiple values from the cache in one call.
    14 	 *
    74 	 *
    21 	 *
    81 	 *
    22 	 * @param array  $keys  Array of keys under which the cache contents are stored.
    82 	 * @param array  $keys  Array of keys under which the cache contents are stored.
    23 	 * @param string $group Optional. Where the cache contents are grouped. Default empty.
    83 	 * @param string $group Optional. Where the cache contents are grouped. Default empty.
    24 	 * @param bool   $force Optional. Whether to force an update of the local cache
    84 	 * @param bool   $force Optional. Whether to force an update of the local cache
    25 	 *                      from the persistent cache. Default false.
    85 	 *                      from the persistent cache. Default false.
    26 	 * @return array Array of values organized into groups.
    86 	 * @return array Array of return values, grouped by key. Each value is either
       
    87 	 *               the cache contents on success, or false on failure.
    27 	 */
    88 	 */
    28 	function wp_cache_get_multiple( $keys, $group = '', $force = false ) {
    89 	function wp_cache_get_multiple( $keys, $group = '', $force = false ) {
    29 		$values = array();
    90 		$values = array();
    30 
    91 
    31 		foreach ( $keys as $key ) {
    92 		foreach ( $keys as $key ) {
    33 		}
    94 		}
    34 
    95 
    35 		return $values;
    96 		return $values;
    36 	}
    97 	}
    37 endif;
    98 endif;
       
    99 
       
   100 if ( ! function_exists( 'wp_cache_delete_multiple' ) ) :
       
   101 	/**
       
   102 	 * Deletes multiple values from the cache in one call.
       
   103 	 *
       
   104 	 * Compat function to mimic wp_cache_delete_multiple().
       
   105 	 *
       
   106 	 * @ignore
       
   107 	 * @since 6.0.0
       
   108 	 *
       
   109 	 * @see wp_cache_delete_multiple()
       
   110 	 *
       
   111 	 * @param array  $keys  Array of keys under which the cache to deleted.
       
   112 	 * @param string $group Optional. Where the cache contents are grouped. Default empty.
       
   113 	 * @return bool[] Array of return values, grouped by key. Each value is either
       
   114 	 *                true on success, or false if the contents were not deleted.
       
   115 	 */
       
   116 	function wp_cache_delete_multiple( array $keys, $group = '' ) {
       
   117 		$values = array();
       
   118 
       
   119 		foreach ( $keys as $key ) {
       
   120 			$values[ $key ] = wp_cache_delete( $key, $group );
       
   121 		}
       
   122 
       
   123 		return $values;
       
   124 	}
       
   125 endif;
       
   126 
       
   127 if ( ! function_exists( 'wp_cache_flush_runtime' ) ) :
       
   128 	/**
       
   129 	 * Removes all cache items from the in-memory runtime cache.
       
   130 	 *
       
   131 	 * Compat function to mimic wp_cache_flush_runtime().
       
   132 	 *
       
   133 	 * @ignore
       
   134 	 * @since 6.0.0
       
   135 	 *
       
   136 	 * @see wp_cache_flush_runtime()
       
   137 	 *
       
   138 	 * @return bool True on success, false on failure.
       
   139 	 */
       
   140 	function wp_cache_flush_runtime() {
       
   141 		return wp_using_ext_object_cache() ? false : wp_cache_flush();
       
   142 	}
       
   143 endif;