1 <?php
2
3 /*
4 * This file is part of the Icybee package.
5 *
6 * (c) Olivier Laviale <olivier.laviale@gmail.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12 namespace Icybee\Modules\Cache;
13
14 /**
15 * Cache interface.
16 */
17 interface CacheManagerInterface
18 {
19 /**
20 * Clears the cache.
21 */
22 public function clear();
23
24 /**
25 * Disables the cache.
26 */
27 public function disable();
28
29 /**
30 * Enables the cache.
31 */
32 public function enable();
33
34 /**
35 * Return stats about the cache.
36 */
37 public function stat();
38 }
39
40 /**
41 * Cache.
42 */
43 abstract class CacheManager implements CacheManagerInterface
44 {
45 /**
46 * Title of the cache. The title is translated within the `cache.title` scope.
47 *
48 * @var string
49 */
50 public $title;
51
52 /**
53 * Description of the cache. The description is translated within
54 * the `cache.description` scope.
55 *
56 * @var string
57 */
58 public $description;
59
60 /**
61 * Caches are displayed by groups. The group of the cache can be defined using this property.
62 * The group is translated within the `cache.group` scope.
63 *
64 * @var string
65 */
66 public $group;
67
68 /**
69 * Whether the cache is enabled.
70 *
71 * @var bool
72 */
73 public $state = false;
74
75 /**
76 * Size limit of the cache, or `false` if not applicable.
77 *
78 * @var int|bool
79 */
80 public $size_limit = false;
81
82 /**
83 * Time limit of the entries in the cache, or `false` if not applicable.
84 *
85 * @var int|bool
86 */
87 public $time_limit = false;
88
89 /**
90 * A preview of the cache configuration, or `null` if not applicable.
91 *
92 * @var string|null
93 */
94 public $config_preview;
95
96 /**
97 * The configuration editor, or `null` if not applicable.
98 *
99 * @var string|null
100 */
101 public $editor;
102 }