[ Index ]
 

Code source de Phorum 5.1.25

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/include/ -> cache_memcached.php (source)

   1  <?php
   2  
   3  ////////////////////////////////////////////////////////////////////////////////
   4  //                                                                            //
   5  //   Copyright (C) 2006  Phorum Development Team                              //
   6  //   http://www.phorum.org                                                    //
   7  //                                                                            //
   8  //   This program is free software. You can redistribute it and/or modify     //
   9  //   it under the terms of either the current Phorum License (viewable at     //
  10  //   phorum.org) or the Phorum License that was distributed with this file    //
  11  //                                                                            //
  12  //   This program is distributed in the hope that it will be useful,          //
  13  //   but WITHOUT ANY WARRANTY, without even the implied warranty of           //
  14  //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                     //
  15  //                                                                            //
  16  //   You should have received a copy of the Phorum License                    //
  17  //   along with this program.                                                 //
  18  ////////////////////////////////////////////////////////////////////////////////
  19  
  20  /*
  21   * Memcached-based caching-layer
  22   * Memcached -> http://www.danga.com/memcached/
  23   * using the pecl-module for accessing memcached
  24   * -> http://pecl.php.net/package/memcache/
  25   */
  26  if(!defined("PHORUM")) return;
  27  
  28  $PHORUM['memcache_obj'] = new Memcache;
  29  $PHORUM['memcache_obj']->connect('127.0.0.1', 11211);
  30  //$PHORUM['memcache_obj'] = memcache_connect('127.0.0.1', 11211);
  31  
  32  
  33  
  34  /*
  35   * This function returns the cached data for the given key 
  36   * or NULL if no data is cached for this key
  37   */
  38  function phorum_cache_get($type,$key) {
  39      if(is_array($key)) {
  40          $getkey=array();
  41          foreach($key as $realkey) {
  42              $getkey[]=$type."_".$realkey;    
  43          }
  44      } else {
  45          $getkey=$type."_".$key;    
  46      }
  47  
  48      $ret=$GLOBALS['PHORUM']['memcache_obj']->get($getkey);
  49      
  50      // rewriting them as we need to strip out the type :(
  51      if(is_array($getkey)) {
  52          $typelen=(strlen($type)+1);
  53          foreach($ret as $retkey => $retdata) {
  54              $ret[substr($retkey,$typelen)]=$retdata;
  55              unset($ret[$retkey]);
  56          }    
  57      }
  58      if($ret === false || (is_array($ret) && count($ret) == 0)) 
  59          $ret=NULL;
  60      
  61      return $ret;
  62      
  63  }
  64  
  65  /*
  66   * Puts some data into the cache 
  67   * returns number of bytes written (something 'true') or false ... 
  68   * depending of the success of the function
  69   */
  70  function phorum_cache_put($type,$key,$data,$ttl=PHORUM_CACHE_DEFAULT_TTL) {
  71      
  72      $ret=$GLOBALS['PHORUM']['memcache_obj']->set($type."_".$key, $data, 0, $ttl);
  73      return $ret;   
  74  }
  75  
  76  
  77  /*
  78   * Removes a key from the cache
  79   */
  80  function phorum_cache_remove($type,$key) {
  81  
  82      $ret=$GLOBALS['PHORUM']['memcache_obj']->delete( $type."_".$key, 0);
  83      
  84      return $ret;
  85  } 
  86  
  87  /*
  88   * Clears all data from the cache
  89   */
  90  function phorum_cache_clear() {
  91      
  92      $ret=$GLOBALS['PHORUM']['memcache_obj']->flush();
  93      
  94      return $ret;   
  95  }
  96  
  97  /*
  98   type can be nearly each value to specify a group of data
  99   used are currently:
 100   'user'
 101   'message'
 102  */
 103  
 104  
 105  ?>


Généré le : Thu Nov 29 12:22:27 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics