function InstantiateClass($path, $class_name) { static $shared; $session_id = session_id(); // Check for global SHM_CACHE setting if (!defined('SHM_CACHE') or !SHM_CACHE) { //syslog( LOG_DEBUG, "InstantiateClass : not caching {$class_name} for session {$session_id}" ); include_once $path; $x = new ${class_name}(); return $x; } if (!isset($shared)) { LoadObjectDependency('net.php.pear.System_SharedMemory'); $shared =& System_SharedMemory::factory(); } include_once $path; $x = $shared->get("object-{$class_name}-{$session_id}"); if (isset($x)) { syslog(LOG_DEBUG, 'InstantiateClass : loaded object-' . $class_name . '-' . $session_id . ' from SHM'); return $x; } else { $x = new ${class_name}(); syslog(LOG_DEBUG, 'InstantiateClass : stored object-' . $class_name . '-' . $session_id . ' in SHM'); $shared->set("object-{$class_name}-{$session_id}", $x); return $x; } }
<?php /** * 共享内存日志显示文件 * * @author Arthur(ArthurXF@gmail.com) * @copyright (c) 2006 by bizeway.com * @version $Id$ * @package ArthurXF * @subpackage user */ include_once __WEBCOMMON_ROOT . '/SharedMemory/SharedMemory.php'; $objShared = System_SharedMemory::factory(); $arrCache_log = $objShared->get($arrGPdoDB['db_name'] . 'log'); //print_r($arrCache_log); // 输出到模板 $arrMOutput["smarty_assign"]['arrCache_log'] = $arrCache_log;
function count_referer($isSave = 1, $uid = null) { global $arrGWeb; $objShared = System_SharedMemory::factory(); if (empty($strVarName)) { $strVarName = $arrGWeb['install_date'] . 'referer'; } $arrPayLog = json_decode($objShared->get($strVarName), TRUE); if ($isSave == 1) { $arrPayLog[$uid] = 1; } elseif ($isSave == 0) { if (!empty($arrPayLog) && array_key_exists($_SESSION['user_id'], $arrPayLog)) { $host = empty($_COOKIE['referer_host']) ? "5217u.com" : $_COOKIE['referer_host']; $time = date("Y-m-d"); $referer = check::getAPI("referer", "getInfoWhere", "where host='{$host}' and time='{$time}'^*"); if (empty($referer)) { $arr_referer = array(); $arr_referer['time'] = $time; $arr_referer['host'] = $host; $arr_referer['buy_times'] = 1; $str_referer = check::getAPIArray($arr_referer); check::getAPI("referer", "saveInfo", "{$str_referer}^0^0"); } else { $referer['buy_times'] += 1; $str_referer = check::getAPIArray($referer); check::getAPI("referer", "saveInfo", "{$str_referer}^1^0"); } unset($arrPayLog[$_SESSION['user_id']]); } } $objShared->set($strVarName, json_encode($arrPayLog)); return true; }