Merge pull request #21275 from eileenmcnaughton/541
[civicrm-core.git] / CRM / Utils / Cache / Interface.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
5 | |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
10 */
11
12 /**
13 *
14 * @package CRM
15 * @copyright CiviCRM LLC https://civicrm.org/licensing
16 * CRM_Utils_Cache_Interface is a long-standing interface used within CiviCRM
17 * for interacting with a cache service. In style and substance, it is extremely
18 * similar to PHP-FIG's SimpleCache interface (PSR-16). Consequently, beginning
19 * with CiviCRM v5.4, this extends \Psr\SimpleCache\CacheInterface.
20 *
21 * @see https://www.php-fig.org/psr/psr-16/
22 */
23 interface CRM_Utils_Cache_Interface extends \Psr\SimpleCache\CacheInterface {
24
25 /**
26 * Set the value in the cache.
27 *
28 * @param string $key
29 * @param mixed $value
30 * @param null|int|\DateInterval $ttl
31 * @return bool
32 */
33 public function set($key, $value, $ttl = NULL);
34
35 /**
36 * Get a value from the cache.
37 *
38 * @param string $key
39 * @param mixed $default
40 * @return mixed
41 * The previously set value value, or $default (NULL).
42 */
43 public function get($key, $default = NULL);
44
45 /**
46 * Delete a value from the cache.
47 *
48 * @param string $key
49 * @return bool
50 */
51 public function delete($key);
52
53 /**
54 * Delete all values from the cache.
55 *
56 * NOTE: flush() and clear() should be aliases. flush() is specified by
57 * Civi's traditional interface, and clear() is specified by PSR-16.
58 *
59 * @return bool
60 * @see clear
61 * @deprecated
62 */
63 public function flush();
64
65 /**
66 * Delete all values from the cache.
67 *
68 * NOTE: flush() and clear() should be aliases. flush() is specified by
69 * Civi's traditional interface, and clear() is specified by PSR-16.
70 *
71 * @return bool
72 * @see flush
73 */
74 public function clear();
75
76 /**
77 * Determines whether an item is present in the cache.
78 *
79 * NOTE: It is recommended that has() is only to be used for cache warming type purposes
80 * and not to be used within your live applications operations for get/set, as this method
81 * is subject to a race condition where your has() will return true and immediately after,
82 * another script can remove it making the state of your app out of date.
83 *
84 * @param string $key The cache item key.
85 *
86 * @return bool
87 */
88 public function has($key);
89
90 }