Mercurial > hg > cmmr2012-drupal-site
comparison vendor/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseCache.php @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:c75dbcec494b |
---|---|
1 <?php | |
2 /* | |
3 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
4 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
5 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
6 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
7 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
8 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
9 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
10 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
11 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
12 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
13 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
14 * | |
15 * This software consists of voluntary contributions made by many individuals | |
16 * and is licensed under the MIT license. For more information, see | |
17 * <http://www.doctrine-project.org>. | |
18 */ | |
19 | |
20 namespace Doctrine\Common\Cache; | |
21 | |
22 use \Couchbase; | |
23 | |
24 /** | |
25 * Couchbase cache provider. | |
26 * | |
27 * @link www.doctrine-project.org | |
28 * @since 2.4 | |
29 * @author Michael Nitschinger <michael@nitschinger.at> | |
30 */ | |
31 class CouchbaseCache extends CacheProvider | |
32 { | |
33 /** | |
34 * @var Couchbase|null | |
35 */ | |
36 private $couchbase; | |
37 | |
38 /** | |
39 * Sets the Couchbase instance to use. | |
40 * | |
41 * @param Couchbase $couchbase | |
42 * | |
43 * @return void | |
44 */ | |
45 public function setCouchbase(Couchbase $couchbase) | |
46 { | |
47 $this->couchbase = $couchbase; | |
48 } | |
49 | |
50 /** | |
51 * Gets the Couchbase instance used by the cache. | |
52 * | |
53 * @return Couchbase|null | |
54 */ | |
55 public function getCouchbase() | |
56 { | |
57 return $this->couchbase; | |
58 } | |
59 | |
60 /** | |
61 * {@inheritdoc} | |
62 */ | |
63 protected function doFetch($id) | |
64 { | |
65 return $this->couchbase->get($id) ?: false; | |
66 } | |
67 | |
68 /** | |
69 * {@inheritdoc} | |
70 */ | |
71 protected function doContains($id) | |
72 { | |
73 return (null !== $this->couchbase->get($id)); | |
74 } | |
75 | |
76 /** | |
77 * {@inheritdoc} | |
78 */ | |
79 protected function doSave($id, $data, $lifeTime = 0) | |
80 { | |
81 if ($lifeTime > 30 * 24 * 3600) { | |
82 $lifeTime = time() + $lifeTime; | |
83 } | |
84 return $this->couchbase->set($id, $data, (int) $lifeTime); | |
85 } | |
86 | |
87 /** | |
88 * {@inheritdoc} | |
89 */ | |
90 protected function doDelete($id) | |
91 { | |
92 return $this->couchbase->delete($id); | |
93 } | |
94 | |
95 /** | |
96 * {@inheritdoc} | |
97 */ | |
98 protected function doFlush() | |
99 { | |
100 return $this->couchbase->flush(); | |
101 } | |
102 | |
103 /** | |
104 * {@inheritdoc} | |
105 */ | |
106 protected function doGetStats() | |
107 { | |
108 $stats = $this->couchbase->getStats(); | |
109 $servers = $this->couchbase->getServers(); | |
110 $server = explode(":", $servers[0]); | |
111 $key = $server[0] . ":" . "11210"; | |
112 $stats = $stats[$key]; | |
113 return array( | |
114 Cache::STATS_HITS => $stats['get_hits'], | |
115 Cache::STATS_MISSES => $stats['get_misses'], | |
116 Cache::STATS_UPTIME => $stats['uptime'], | |
117 Cache::STATS_MEMORY_USAGE => $stats['bytes'], | |
118 Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'], | |
119 ); | |
120 } | |
121 } |