source: spip-zone/_plugins_/memoization/memo/eaccelerator.inc @ 32458

Last change on this file since 32458 was 32458, checked in by fil@…, 10 years ago

une version pour eaccelerator + correction de cache_inc et cache_dec sur le memo filecache

File size: 1.5 KB
Line 
1<?php
2
3# l'API de cache_set etc est exactement celle de xcache
4# a ceci pres qu'on se reserve un namespace specifique au site
5# afin de ne pas se melanger sur un serveur mutualise
6#
7# je laisse le soin a qui voudra de refaire ca en mode objet
8
9/*
10mixed cache_get(string name)
11bool  cache_set(string name, mixed value [, int ttl])
12bool  cache_isset(string name)
13bool  cache_unset(string name)
14bool  cache_unset_by_prefix(string prefix)
15int   cache_inc(string name [, int value [, int ttl]])
16int   cache_dec(string name [, int value [, int ttl]])
17*/
18
19@define('_CACHE_NAMESPACE', $_SERVER['HTTP_HOST'].':');
20
21function cache_get() {
22        $a = func_get_args();
23        $a[0] = _CACHE_NAMESPACE.$a[0];
24        return ($v = call_user_func_array('eaccelerator_get', $a))
25                ? @unserialize($v)
26                : null;
27}
28
29function cache_set() {
30        $a = func_get_args();
31        $a[0] = _CACHE_NAMESPACE.$a[0];
32        $a[1] = serialize($a[1]);
33        return call_user_func_array('eaccelerator_put', $a);
34}
35
36function cache_isset() {
37        $a = func_get_args();
38        return cache_get($a[0]) !== null;
39}
40
41function cache_unset() {
42        $a = func_get_args();
43        $a[0] = _CACHE_NAMESPACE.$a[0];
44        return call_user_func_array('eaccelerator_rm', $a);
45}
46
47function cache_unset_by_prefix() {
48        $a = func_get_args();
49        return false; # on sait pas faire
50}
51
52function cache_inc() {
53        $a = func_get_args();
54        $a[1] = intval(cache_get($a[0]))+1;
55        return call_user_func_array('cache_set', $a);
56}
57
58function cache_dec() {
59        $a = func_get_args();
60        $a[1] = intval(cache_get($a[0]))-1;
61        return call_user_func_array('cache_set', $a);
62}
63
64?>
Note: See TracBrowser for help on using the repository browser.