]> git.mxchange.org Git - friendica.git/blob - src/Core/Cache.php
Refactor Cache/Lock to DICE
[friendica.git] / src / Core / Cache.php
1 <?php
2 /**
3  * @file src/Core/Cache.php
4  */
5 namespace Friendica\Core;
6
7 use Friendica\BaseObject;
8 use Friendica\Core\Cache\ICacheDriver;
9
10 /**
11  * @brief Class for storing data for a short time
12  */
13 class Cache extends BaseObject
14 {
15         /** @deprecated Use ICacheDriver::MONTH */
16         const MONTH        = ICacheDriver::MONTH;
17         /** @deprecated Use ICacheDriver::WEEK */
18         const WEEK         = 604800;
19         /** @deprecated Use ICacheDriver::DAY */
20         const DAY          = 86400;
21         /** @deprecated Use ICacheDriver::HOUR */
22         const HOUR         = 3600;
23         /** @deprecated Use ICacheDriver::HALF_HOUR */
24         const HALF_HOUR    = 1800;
25         /** @deprecated Use ICacheDriver::QUARTER_HOUR */
26         const QUARTER_HOUR = 900;
27         /** @deprecated Use ICacheDriver::FIVE_MINUTES */
28         const FIVE_MINUTES = 300;
29         /** @deprecated Use ICacheDriver::MINUTE */
30         const MINUTE       = 60;
31         /** @deprecated Use ICacheDriver::INFINITE */
32         const INFINITE     = 0;
33
34         /**
35          * @brief Returns all the cache keys sorted alphabetically
36          *
37          * @param string $prefix Prefix of the keys (optional)
38          *
39          * @return array Empty if the driver doesn't support this feature
40          * @throws \Exception
41          */
42         public static function getAllKeys($prefix = null)
43         {
44                 return self::getClass(ICacheDriver::class)->getAllKeys($prefix);
45         }
46
47         /**
48          * @brief Fetch cached data according to the key
49          *
50          * @param string $key The key to the cached data
51          *
52          * @return mixed Cached $value or "null" if not found
53          * @throws \Exception
54          */
55         public static function get($key)
56         {
57                 return self::getClass(ICacheDriver::class)->get($key);
58         }
59
60         /**
61          * @brief Put data in the cache according to the key
62          *
63          * The input $value can have multiple formats.
64          *
65          * @param string  $key      The key to the cached data
66          * @param mixed   $value    The value that is about to be stored
67          * @param integer $duration The cache lifespan
68          *
69          * @return bool
70          * @throws \Exception
71          */
72         public static function set($key, $value, $duration = ICacheDriver::MONTH)
73         {
74                 return self::getClass(ICacheDriver::class)->set($key, $value, $duration);
75         }
76
77         /**
78          * @brief Delete a value from the cache
79          *
80          * @param string $key The key to the cached data
81          *
82          * @return bool
83          * @throws \Exception
84          */
85         public static function delete($key)
86         {
87                 return self::getClass(ICacheDriver::class)->delete($key);
88         }
89
90         /**
91          * @brief Remove outdated data from the cache
92          *
93          * @param boolean $outdated just remove outdated values
94          *
95          * @return bool
96          * @throws \Exception
97          */
98         public static function clear($outdated = true)
99         {
100                 return self::getClass(ICacheDriver::class)->clear($outdated);
101         }
102 }