PluginProbe
Tutor LMS – eLearning and online course solution / 3.9.2
Tutor LMS – eLearning and online course solution v3.9.2
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 4.0.2 4.0.1 4.0.0 3.9.15 3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 All 191 releases
tutor / cache / AbstractCache.php

AbstractCache.php in Tutor LMS – eLearning and online course solution 3.9.2, at cache/AbstractCache.php

90 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Cache abstract for implementing by the derived class
4 *
5 * @package Tutor\Cache
6 * @author Themeum <support@themeum.com>
7 * @link https://themeum.com
8 * @since 2.0.6
9 */
10
11 namespace Tutor\Cache;
12
13 /**
14 * AbstractCache class
15 *
16 * @since 2.0.6
17 */
18 abstract class AbstractCache {
19
20 /**
21 * Cache key
22 *
23 * @return string
24 */
25 abstract public function key(): string;
26
27 /**
28 * Cache time
29 *
30 * @return int
31 */
32 abstract public function cache_time(): int;
33
34 /**
35 * Cache data
36 *
37 * @return array
38 */
39 abstract public function cache_data();
40
41 /**
42 * Set cache data
43 *
44 * @since 2.0.6
45 * @return void
46 */
47 public function set_cache(): void {
48 do_action( 'tutor_cache_before_' . $this->key(), $this->cache_data() );
49 set_transient( $this->key(), $this->cache_data(), $this->cache_time() );
50 do_action( 'tutor_cache_after_' . $this->key(), $this->cache_data() );
51 }
52
53 /**
54 * Get user data from cache
55 *
56 * @since 2.0.6
57 * @return object cache data
58 */
59 public function get_cache() {
60 $data = get_transient( $this->key() );
61 return $data;
62 }
63
64 /**
65 * If cache don't have value or expired or not exists
66 * will return false
67 *
68 * @since 2.0.6
69 * @return bool true on success, false on fail
70 */
71 public function has_cache(): bool {
72 return $this->get_cache() ? true : false;
73 }
74
75 /**
76 * Delete cache
77 *
78 * @since 2.0.6
79 * @return void
80 */
81 public function delete_cache(): void {
82 delete_transient( $this->key() );
83
84 // Clear data after delete cache.
85 if ( isset( $this->data ) ) {
86 $this->data = '';
87 }
88 }
89 }
90