root / trunk / phpBB / includes / acm / acm_memcache.php

View | Annotate | Download (2.1 KB)

1 8302 davidmj
<?php
2 9334 acydburn
/**
3 8302 davidmj
*
4 8302 davidmj
* @package acm
5 8302 davidmj
* @version $Id$
6 9534 toonarmy
* @copyright (c) 2005, 2009 phpBB Group
7 9334 acydburn
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
8 8302 davidmj
*
9 8302 davidmj
*/
10 8302 davidmj
11 8302 davidmj
/**
12 8302 davidmj
* @ignore
13 8302 davidmj
*/
14 8302 davidmj
if (!defined('IN_PHPBB'))
15 8302 davidmj
{
16 8302 davidmj
        exit;
17 8302 davidmj
}
18 8302 davidmj
19 9534 toonarmy
// Include the abstract base
20 9534 toonarmy
if (!class_exists('acm_memory'))
21 9534 toonarmy
{
22 9544 toonarmy
        require("{$phpbb_root_path}includes/acm/acm_memory.$phpEx");
23 9534 toonarmy
}
24 9534 toonarmy
25 9531 toonarmy
if (!defined('PHPBB_ACM_MEMCACHE_PORT'))
26 9531 toonarmy
{
27 9531 toonarmy
        define('PHPBB_ACM_MEMCACHE_PORT', 11211);
28 9531 toonarmy
}
29 9531 toonarmy
30 9531 toonarmy
if (!defined('PHPBB_ACM_MEMCACHE_COMPRESS'))
31 9531 toonarmy
{
32 9531 toonarmy
        define('PHPBB_ACM_MEMCACHE_COMPRESS', false);
33 9531 toonarmy
}
34 9531 toonarmy
35 9554 acydburn
if (!defined('PHPBB_ACM_MEMCACHE_HOST'))
36 9554 acydburn
{
37 9554 acydburn
        define('PHPBB_ACM_MEMCACHE_HOST', 'localhost');
38 9554 acydburn
}
39 9554 acydburn
40 8302 davidmj
/**
41 9531 toonarmy
* ACM for Memcached
42 8302 davidmj
* @package acm
43 8302 davidmj
*/
44 9534 toonarmy
class acm extends acm_memory
45 8302 davidmj
{
46 9540 toonarmy
        var $extension = 'memcache';
47 9540 toonarmy
48 9334 acydburn
        var $memcache;
49 9531 toonarmy
        var $flags = 0;
50 9334 acydburn
51 9334 acydburn
        function acm()
52 8302 davidmj
        {
53 9534 toonarmy
                // Call the parent constructor
54 9534 toonarmy
                parent::acm_memory();
55 9531 toonarmy
56 9531 toonarmy
                $this->memcache = new Memcache;
57 9531 toonarmy
                $this->memcache->connect(PHPBB_ACM_MEMCACHE_HOST, PHPBB_ACM_MEMCACHE_PORT);
58 9531 toonarmy
                $this->flags = (PHPBB_ACM_MEMCACHE_COMPRESS) ? MEMCACHE_COMPRESSED : 0;
59 8302 davidmj
        }
60 8302 davidmj
61 9536 toonarmy
        /**
62 9536 toonarmy
        * Unload the cache resources
63 9536 toonarmy
        *
64 9536 toonarmy
        * @return void
65 9536 toonarmy
        */
66 9334 acydburn
        function unload()
67 8302 davidmj
        {
68 9534 toonarmy
                parent::unload();
69 8302 davidmj
70 9531 toonarmy
                $this->memcache->close();
71 8302 davidmj
        }
72 8302 davidmj
73 8302 davidmj
        /**
74 8302 davidmj
        * Purge cache data
75 9536 toonarmy
        *
76 9536 toonarmy
        * @return void
77 8302 davidmj
        */
78 9334 acydburn
        function purge()
79 8302 davidmj
        {
80 9531 toonarmy
                $this->memcache->flush();
81 8302 davidmj
82 9534 toonarmy
                parent::purge();
83 8302 davidmj
        }
84 8302 davidmj
85 9536 toonarmy
        /**
86 9536 toonarmy
        * Fetch an item from the cache
87 9536 toonarmy
        *
88 9536 toonarmy
        * @access protected
89 9536 toonarmy
        * @param string $var Cache key
90 9536 toonarmy
        * @return mixed Cached data
91 9536 toonarmy
        */
92 9536 toonarmy
        function _read($var)
93 8302 davidmj
        {
94 9541 toonarmy
                return $this->memcache->get($this->key_prefix . $var);
95 8302 davidmj
        }
96 8302 davidmj
97 9536 toonarmy
        /**
98 9536 toonarmy
        * Store data in the cache
99 9536 toonarmy
        *
100 9536 toonarmy
        * @access protected
101 9536 toonarmy
        * @param string $var Cache key
102 9536 toonarmy
        * @param mixed $data Data to store
103 9536 toonarmy
        * @param int $ttl Time-to-live of cached data
104 9536 toonarmy
        * @return bool True if the operation succeeded
105 9536 toonarmy
        */
106 9536 toonarmy
        function _write($var, $data, $ttl = 2592000)
107 9334 acydburn
        {
108 9541 toonarmy
                return $this->memcache->set($this->key_prefix . $var, $data, $this->flags, $ttl);
109 9334 acydburn
        }
110 9334 acydburn
111 9536 toonarmy
        /**
112 9536 toonarmy
        * Remove an item from the cache
113 9536 toonarmy
        *
114 9536 toonarmy
        * @access protected
115 9536 toonarmy
        * @param string $var Cache key
116 9536 toonarmy
        * @return bool True if the operation succeeded
117 9536 toonarmy
        */
118 9536 toonarmy
        function _delete($var)
119 8302 davidmj
        {
120 9541 toonarmy
                return $this->memcache->delete($this->key_prefix . $var);
121 8302 davidmj
        }
122 8302 davidmj
}
123 8302 davidmj
124 8302 davidmj
?>