voltage

apc || memcached

Jan 25th, 2012
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.21 KB | None | 0 0
  1. <?php
  2.   //@author voltage
  3.  
  4.   define('C_CONN_MEMCACHED_HOSTNAME', '127.0.0.1');
  5.   define('C_CONN_MEMCACHED_PORT', 11211);
  6.   define('C_CACHE_USE_COMPRESSION', false);
  7.  
  8.   $memcache = new Memcache();
  9.   $memcache->pconnect(C_CONN_MEMCACHED_HOSTNAME, C_CONN_MEMCACHED_PORT);
  10.  
  11.   function catchd($varname, $timeout, $carrier, $args = null)
  12.   {
  13.     if(extension_loaded('apc'))
  14.     {
  15.       $j = apc_fetch($varname);
  16.       if(empty($j))
  17.       {
  18.         $j = call_user_func($carrier, $args);
  19.         apc_store
  20.         (
  21.           $varname,
  22.           $j,
  23.           $timeout
  24.         );
  25.       }
  26.       return $j;
  27.     }
  28.     else
  29.     {
  30.       if(extension_loaded('memcache'))
  31.       {
  32.         global $memcache;
  33.         $j = $memcache->get($varname);
  34.         if($j === false)
  35.         {
  36.           $j = call_user_func($carrier, $args);
  37.           $memcache->set
  38.           (
  39.             $varname,
  40.             $j,
  41.             (
  42.               C_CACHE_USE_COMPRESSION
  43.               ? MEMCACHE_COMPRESSED
  44.               : 0
  45.             ),
  46.             $timeout
  47.           );
  48.         }
  49.         return $j;
  50.       }
  51.       else
  52.       {
  53.         return call_user_func($carrier, $args);
  54.       }
  55.     }
  56.   }
  57. ?>
Advertisement
Add Comment
Please, Sign In to add comment