コード例 #1
0
/**
 * 	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;
}
コード例 #2
0
ファイル: memory.lib.php プロジェクト: remyyounes/dolibarr
/**
 * 	\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;
}
コード例 #3
0
ファイル: memory.lib.php プロジェクト: nrjacker4/crm-php
/**
 * 	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;
}