/** * Save data into a memory area shared by all users, all sessions on server * * @param string $memoryid Memory id of shared area * @param string $data Data to save * @return int <0 if KO, Nb of bytes written if OK */ function dol_setcache($memoryid, $data) { global $conf; $result = 0; // Using a memcached server if (!empty($conf->memcached->enabled) && class_exists('Memcached')) { global $dolmemcache; if (empty($dolmemcache) || !is_object($dolmemcache)) { $dolmemcache = new Memcached(); $tmparray = explode(':', $conf->global->MEMCACHED_SERVER); $result = $dolmemcache->addServer($tmparray[0], $tmparray[1] ? $tmparray[1] : 11211); if (!$result) { return -1; } } $memoryid = session_name() . '_' . $memoryid; //$dolmemcache->setOption(Memcached::OPT_COMPRESSION, false); //print "Add memoryid=".$memoryid; $dolmemcache->add($memoryid, $data); // This fails if key already exists $rescode = $dolmemcache->getResultCode(); if ($rescode == 0) { return count($data); } else { return -$rescode; } } else { if (!empty($conf->memcached->enabled) && class_exists('Memcache')) { global $dolmemcache; if (empty($dolmemcache) || !is_object($dolmemcache)) { $dolmemcache = new Memcache(); $tmparray = explode(':', $conf->global->MEMCACHED_SERVER); $result = $dolmemcache->addServer($tmparray[0], $tmparray[1] ? $tmparray[1] : 11211); if (!$result) { return -1; } } $memoryid = session_name() . '_' . $memoryid; //$dolmemcache->setOption(Memcached::OPT_COMPRESSION, false); $result = $dolmemcache->add($memoryid, $data); // This fails if key already exists if ($result) { return count($data); } else { return -1; } } else { if (isset($conf->global->MAIN_OPTIMIZE_SPEED) && $conf->global->MAIN_OPTIMIZE_SPEED & 0x2) { $result = dol_setshmop($memoryid, $data); } } } return $result; }
/** * \brief Save data into a memory area shared by all users, all sessions on server * \param $memoryid Memory id of shared area * \param $data Data to save * \return int <0 if KO, Nb of bytes written if OK */ function dol_setcache($memoryid,$data) { global $conf; $result=0; // Using a memcached server if (! empty($conf->memcached->enabled) && class_exists('Memcached')) { $memoryid=session_name().'_'.$memoryid; $m=new Memcached(); $tmparray=explode(':',$conf->global->MEMCACHED_SERVER); $result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211); //$m->setOption(Memcached::OPT_COMPRESSION, false); $m->add($memoryid,$data); $rescode=$m->getResultCode(); if ($rescode == 0) { return sizeof($data); } else { return -$rescode; } } else if (! empty($conf->memcached->enabled) && class_exists('Memcache')) { $memoryid=session_name().'_'.$memoryid; $m=new Memcache(); $tmparray=explode(':',$conf->global->MEMCACHED_SERVER); $result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211); //$m->setOption(Memcached::OPT_COMPRESSION, false); $result=$m->add($memoryid,$data); if ($result) { return sizeof($data); } else { return -1; } } // Using shmop else if (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_SPEED & 0x02)) { $result=dol_setshmop($memoryid,$data); } return $result; }
/** * Save data into a memory area shared by all users, all sessions on server * * @param string $memoryid Memory id of shared area * @param string $data Data to save * @return int <0 if KO, Nb of bytes written if OK */ function dol_setcache($memoryid, $data) { global $conf; $result = -1; // Using a memcached server if (!empty($conf->memcached->host) && class_exists('Memcached')) { $memoryid = session_name() . '_' . $memoryid; $m = new Memcached(); $result = $m->addServer($conf->memcached->host, $conf->memcached->port); //$m->setOption(Memcached::OPT_COMPRESSION, false); //print "Add memoryid=".$memoryid; $m->set($memoryid, $data, 3600); // This fails if key already exists $rescode = $m->getResultCode(); if ($rescode == 0) { return count($data); } else { return -$rescode; } } else { if (!empty($conf->memcached->host) && class_exists('Memcache')) { $memoryid = session_name() . '_' . $memoryid; $m = new Memcache(); $result = $m->addServer($conf->memcached->host, $conf->memcached->port); //$m->setOption(Memcached::OPT_COMPRESSION, false); $result = $m->set($memoryid, $data); // This fails if key already exists if ($result) { return count($data); } else { return -1; } } else { if (isset($conf->global->MAIN_OPTIMIZE_SPEED) && $conf->global->MAIN_OPTIMIZE_SPEED & 0x2) { $result = dol_setshmop($memoryid, $data); } else { $_SESSION[$memoryid] = $data; $result = 1; } } } return $result; }