Changeset 32424 in spip-zone for _plugins_/xcache


Ignore:
Timestamp:
Oct 28, 2009, 3:28:42 PM (11 years ago)
Author:
fil@…
Message:

API de cache complete

Location:
_plugins_/xcache/inc
Files:
1 added
1 edited

Legend:

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

    r32408 r32424  
    11<?php
    22
     3# xcache ?
     4if (function_exists('xcache_set'))
     5        require_once dirname(__FILE__).'/'.'xcache.inc';
     6
    37//
    4 // Cache function Cache()
     8// Cache a function's result cache_me()
    59// (c) Fil 2009 - Double-licensed under the GNU/LGPL and MIT licenses
    610// http://zzz.rezo.net/-SPIP-
     
    1115// Usage: require_once 'xcache.php';
    1216// In any cacheable function add at top:
    13 // if(!is_null($C=Cache())) return$C;
    14 
    15 if (!function_exists('Cache')) {
    16 
    17 # xcache ?
    18 if (function_exists('xcache_set')) {
    19         function Cache($vars=null, $ttl=3600) {
     17// if(!is_null($c=cache_me())) return$c;
     18if (!function_exists('debug_backtrace')) {
     19        function cache_me() {return;}
     20} else {
     21        function cache_me($vars=null, $ttl=3600) {
    2022                $trace = debug_backtrace();
    2123                $trace = $trace[1];
    22                 $key = __FILE__ . md5(
     24                $key = md5(
    2325                        $trace['function']
    2426                        .serialize($trace['args'])
    2527                        .serialize($vars)
    2628                );
    27                 if (!xcache_isset($key)) {
    28                         xcache_set($key, null, $ttl);
     29                if (!cache_isset($key)) {
     30                        cache_set($key, null, $ttl);
    2931                        $r = call_user_func_array($trace['function'], $trace['args']);
    30                         xcache_set($key, $r, $ttl);
     32                        cache_set($key, $r, $ttl);
    3133                        return $r;
    3234                }
    33                 return xcache_get($key);
     35                return cache_get($key);
    3436        }
    35 }
    36 # elementary compatibility
    37 else {
    38         function Cache(){return null;}
    39 }
    40 
    4137}
    4238
Note: See TracChangeset for help on using the changeset viewer.