Changeset 32432 in spip-zone


Ignore:
Timestamp:
Oct 28, 2009, 6:12:18 PM (11 years ago)
Author:
fil@…
Message:

filecache.inc et nocache.inc

Location:
_plugins_/xcache/inc
Files:
1 edited
2 copied

Legend:

Unmodified
Added
Removed
  • _plugins_/xcache/inc/filecache.inc

    r32424 r32432  
    1717*/
    1818
    19 @define('_CACHE_NAMESPACE', $_SERVER['HTTP_HOST'].':');
     19@define('_DIR_TMP_XCACHE', defined('_DIR_TMP') ? _DIR_TMP : 'tmp/');
     20
     21function cache_filename($u) {
     22        return _DIR_TMP_XCACHE.'cache/'.md5($u);
     23}
     24function cache_delete_dir($dir) {
     25        if ($d = @opendir($dir))
     26                while (($f = readdir($d)) !== false)
     27                        if (is_file($f))
     28                                unlink($f);
     29}
    2030
    2131function cache_get() {
    2232        $a = func_get_args();
    23         $a[0] = _CACHE_NAMESPACE.$a[0];
    24         return call_user_func_array('xcache_get', $a);
     33        if (lire_fichier(cache_filename($a[0]), $c)
     34        AND $r = unserialize($c)
     35        AND $r[1] <= time())
     36                return $r[0];
    2537}
    2638
    2739function cache_set() {
    2840        $a = func_get_args();
    29         $a[0] = _CACHE_NAMESPACE.$a[0];
    30         return call_user_func_array('xcache_set', $a);
     41        $r = array($a[1]);
     42        $r[1] = isset($a[2])
     43                ? time() + intval($a[2])
     44                : time() + 365*24*3600;
     45        return ecrire_fichier(cache_filename($a[0]), serialize($r));
    3146}
    3247
    3348function cache_isset() {
    3449        $a = func_get_args();
    35         $a[0] = _CACHE_NAMESPACE.$a[0];
    36         return call_user_func_array('xcache_isset', $a);
     50        if (lire_fichier(cache_filename($a[0]), $c)
     51        AND $r = unserialize($c)
     52        AND $r[1] <= time())
     53                return true;
     54        else
     55                return false;
    3756}
    3857
    3958function cache_unset() {
    4059        $a = func_get_args();
    41         $a[0] = _CACHE_NAMESPACE.$a[0];
    42         return call_user_func_array('xcache_unset', $a);
     60        return (
     61                lire_fichier($f = cache_filename($a[0]), $c)
     62                AND $s = supprimer_fichier($f)
     63                AND $r = unserialize($c)
     64                AND $r[1] <= time()
     65        );
    4366}
    4467
    4568function cache_unset_by_prefix() {
    46         $a = func_get_args();
    47         $a[0] = _CACHE_NAMESPACE.$a[0];
    48         return call_user_func_array('xcache_unset_by_prefix', $a);
     69        # ici on efface tout aveuglement
     70        cache_delete_dir(_DIR_TMP_XCACHE);
     71        return true;
    4972}
    5073
    5174function cache_inc() {
    5275        $a = func_get_args();
    53         $a[0] = _CACHE_NAMESPACE.$a[0];
    54         return call_user_func_array('xcache_inc', $a);
     76        $a[1] = intval(cache_get($a[0]))+1;
     77        return call_user_func_array('xcache_set', $a);
    5578}
    5679
    5780function cache_dec() {
    5881        $a = func_get_args();
    59         $a[0] = _CACHE_NAMESPACE.$a[0];
    60         return call_user_func_array('xcache_dec', $a);
     82        $a[1] = intval(cache_get($a[0]))-1;
     83        return call_user_func_array('xcache_set', $a);
    6184}
    6285
  • _plugins_/xcache/inc/nocache.inc

    r32424 r32432  
    1717*/
    1818
    19 @define('_CACHE_NAMESPACE', $_SERVER['HTTP_HOST'].':');
    20 
    2119function cache_get() {
    22         $a = func_get_args();
    23         $a[0] = _CACHE_NAMESPACE.$a[0];
    24         return call_user_func_array('xcache_get', $a);
    2520}
    2621
    2722function cache_set() {
    28         $a = func_get_args();
    29         $a[0] = _CACHE_NAMESPACE.$a[0];
    30         return call_user_func_array('xcache_set', $a);
     23        return false;
    3124}
    3225
    3326function cache_isset() {
    34         $a = func_get_args();
    35         $a[0] = _CACHE_NAMESPACE.$a[0];
    36         return call_user_func_array('xcache_isset', $a);
     27        return false;
    3728}
    3829
    3930function cache_unset() {
    40         $a = func_get_args();
    41         $a[0] = _CACHE_NAMESPACE.$a[0];
    42         return call_user_func_array('xcache_unset', $a);
     31        return false;
    4332}
    4433
    4534function cache_unset_by_prefix() {
    46         $a = func_get_args();
    47         $a[0] = _CACHE_NAMESPACE.$a[0];
    48         return call_user_func_array('xcache_unset_by_prefix', $a);
     35        return false;
    4936}
    5037
    5138function cache_inc() {
    52         $a = func_get_args();
    53         $a[0] = _CACHE_NAMESPACE.$a[0];
    54         return call_user_func_array('xcache_inc', $a);
     39        return 1;
    5540}
    5641
    5742function cache_dec() {
    58         $a = func_get_args();
    59         $a[0] = _CACHE_NAMESPACE.$a[0];
    60         return call_user_func_array('xcache_dec', $a);
     43        return -1;
    6144}
    6245
  • _plugins_/xcache/inc/xcache.php

    r32424 r32432  
    44if (function_exists('xcache_set'))
    55        require_once dirname(__FILE__).'/'.'xcache.inc';
     6else
     7        require_once dirname(__FILE__).'/'.'filecache.inc';
     8
    69
    710//
Note: See TracChangeset for help on using the changeset viewer.