PluginProbe ʕ •ᴥ•ʔ
WP Popular Posts / 5.2.3
WP Popular Posts v5.2.3
4.0.8 4.0.9 4.1.0 4.1.1 4.1.2 4.2.0 4.2.1 4.2.2 5.0.0 5.0.1 5.0.2 5.1.0 5.2.0 5.2.1 5.2.2 5.2.3 5.2.4 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 6.0.0 6.0.1 6.0.2 6.0.3 6.0.4 6.0.5 6.1.0 6.1.1 6.1.2 6.1.3 6.1.4 6.2.0 6.2.1 6.3.0 6.3.1 6.3.2 6.3.3 6.3.4 6.4.0 6.4.1 6.4.2 7.0.0 7.0.1 7.1.0 7.2.0 7.3.0 7.3.1 7.3.2 7.3.3 7.3.4 7.3.5 7.3.6 7.3.7 7.3.8 7.4.0 trunk 2.3.7 3.0.0 3.0.1 3.0.2 3.0.3 3.1.0 3.1.1 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 4.0.0 4.0.1 4.0.10 4.0.11 4.0.12 4.0.13 4.0.2 4.0.3 4.0.5 4.0.6
wordpress-popular-posts / src / Cache.php
wordpress-popular-posts / src Last commit date
Activation 5 years ago Admin 5 years ago Container 5 years ago Front 5 years ago Moment 5 years ago Rest 5 years ago Widget 5 years ago Bootstrap.php 5 years ago Cache.php 5 years ago Helper.php 5 years ago I18N.php 5 years ago Image.php 5 years ago Output.php 5 years ago Query.php 5 years ago Settings.php 5 years ago Themer.php 5 years ago Translate.php 5 years ago WordPressPopularPosts.php 5 years ago deprecated.php 5 years ago template-tags.php 5 years ago
Cache.php
112 lines
1 <?php
2
3 /**
4 * Helper class to store data in cache for a fixed amount of time.
5 *
6 * @link https://cabrerahector.com
7 * @since 4.1.2
8 *
9 * @package WordPressPopularPosts
10 * @subpackage WordPressPopularPosts/includes
11 */
12
13 /**
14 * Helper class to store data in cache for a fixed amount of time.
15 *
16 * Stores data in cache via WordPress Transients (or any other available
17 * method in the future) for a fixed amount of time to reduce the number
18 * of database calls.
19 *
20 * @package WordPressPopularPosts
21 * @subpackage WordPressPopularPosts/includes
22 * @author Hector Cabrera <me@cabrerahector.com>
23 */
24
25 namespace WordPressPopularPosts;
26
27 class Cache {
28
29 /**
30 * Retrieves cached data.
31 *
32 * @since 4.1.2
33 * @access public
34 * @param string $key The name of the cached data.
35 * @return mixed
36 */
37 public static function get($key)
38 {
39 return get_transient($key);
40 }
41
42 /**
43 * Retrieves cached data.
44 *
45 * @since 4.1.2
46 * @access public
47 * @param string $key The name of the cached data.
48 * @param mixed $data The data being stored.
49 */
50 public static function set($key = null, $data = [], $time_value = 1, $time_unit = 'minute')
51 {
52 if ( !$key )
53 return false;
54
55 if (
56 false === filter_var($time_value, FILTER_VALIDATE_INT)
57 || $time_value <= 0
58 ) {
59 $time_value = 1;
60 }
61
62 switch( $time_unit ){
63
64 case 'minute':
65 $time = 60;
66 break;
67
68 case 'hour':
69 $time = 60 * 60;
70 break;
71
72 case 'day':
73 $time = 60 * 60 * 24;
74 break;
75
76 case 'week':
77 $time = 60 * 60 * 24 * 7;
78 break;
79
80 case 'month':
81 $time = 60 * 60 * 24 * 30;
82 break;
83
84 case 'year':
85 $time = 60 * 60 * 24 * 365;
86 break;
87
88 default:
89 $time = 60;
90 break;
91
92 }
93
94 $expiration = $time * $time_value;
95
96 // Store transient
97 set_transient($key, $data, $expiration);
98
99 // Store transient in WPP transients array for garbage collection
100 $wpp_transients = get_option('wpp_transients');
101
102 if ( !$wpp_transients ) {
103 $wpp_transients = [$key];
104 add_option('wpp_transients', $wpp_transients);
105 } else {
106 if ( !in_array($key, $wpp_transients) ) {
107 $wpp_transients[] = $key;
108 update_option('wpp_transients', $wpp_transients);
109 }
110 }
111 }
112 }