forked from phalcon/incubator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBase.php
118 lines (106 loc) · 3.08 KB
/
Base.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<?php
/*
+------------------------------------------------------------------------+
| Phalcon Framework |
+------------------------------------------------------------------------+
| Copyright (c) 2011-2016 Phalcon Team (http://www.phalconphp.com) |
+------------------------------------------------------------------------+
| This source file is subject to the New BSD License that is bundled |
| with this package in the file docs/LICENSE.txt. |
| |
| If you did not receive a copy of the license and are unable to |
| obtain it through the world-wide-web, please send an email |
| to [email protected] so we can send you a copy immediately. |
+------------------------------------------------------------------------+
| Authors: Ilya Gusev <[email protected]> |
+------------------------------------------------------------------------+
*/
namespace Phalcon\Annotations\Adapter;
use Phalcon\Annotations\Adapter;
/**
* \Phalcon\Annotations\Adapter\Base
* Base class for \Phalcon\Annotations\Adapter\Memcached and other adapters.
*
* @package Phalcon\Annotations\Adapter
*/
abstract class Base extends Adapter
{
/**
* Default option for cache lifetime.
*
* @var array
*/
protected static $defaultLifetime = 8600;
/**
* Default option for prefix.
*
* @var string
*/
protected static $defaultPrefix = '';
/**
* Backend's options.
*
* @var array
*/
protected $options = null;
/**
* Class constructor.
*
* @param null|array $options
*
* @throws \Phalcon\Mvc\Model\Exception
*/
public function __construct($options = null)
{
if (!is_array($options) || !isset($options['lifetime'])) {
$options['lifetime'] = self::$defaultLifetime;
}
if (!is_array($options) || !isset($options['prefix'])) {
$options['prefix'] = self::$defaultPrefix;
}
$this->options = $options;
}
/**
* {@inheritdoc}
*
* @param string $key
*
* @return array
*/
public function read($key)
{
return $this->getCacheBackend()->get(
$this->prepareKey($key),
$this->options['lifetime']
);
}
/**
* {@inheritdoc}
*
* @param string $key
* @param array $data
*/
public function write($key, $data)
{
$this->getCacheBackend()->save(
$this->prepareKey($key),
$data,
$this->options['lifetime']
);
}
/**
* Returns the key with a prefix or other changes
*
* @param string $key
*
* @return string
*/
abstract protected function prepareKey($key);
/**
* Returns cache backend instance.
*
* @abstract
* @@implements \Phalcon\Cache\BackendInterface
*/
abstract protected function getCacheBackend();
}