/** * 初始化和开始SESSION * @param Memcache $memcache Memcache对象 */ public static function start(Memcache $memcache) { //将session.start_handler设置为true,而不是默认的file ini_set('session.save_handler', 'user'); //不使用URL传递session_id()的方式 //int_set('session.use_trans_sid', 0); //设置垃圾回收最大生存时间 //ini_set('session.gc_maxlifetime', 3600); //设置使用cookie保存session_id()的方式 //ini_set('session.use_cookies', 1); //ini_set('session.cookie_path', '/'); //多主机共享保存session id的cookie //ini_set('session.cookie_domain', 'huphp.com'); self::$handler = $memcache; self::$lifetime = ini_get('session.gc_maxlifetime'); session_set_save_handler(array(__CLASS__, 'open'), array(__CLASS__, 'close'), array(__CLASS__, 'read'), array(__CLASS__, 'write'), array(__CLASS__, 'destroy'), array(__CLASS__, 'gc')); session_start(); return true; }
/** * 初使化和开启session * @param Memcache $memcache memcache对象 */ public static function start(Memcache $memcache) { //将 session.save_handler 设置为 user,而不是默认的 files ini_set('session.save_handler', 'user'); //不使用 GET/POST 变量方式 //ini_set('session.use_trans_sid', 0); //设置垃圾回收最大生存时间 //ini_set('session.gc_maxlifetime', 3600); //使用 COOKIE 保存 SESSION ID 的方式 //ini_set('session.use_cookies', 1); //ini_set('session.cookie_path', '/'); //多主机共享保存 SESSION ID 的 COOKIE //ini_set('session.cookie_domain','.lampbrother.net'); self::$handler = $memcache; self::$lifetime = ini_get('session.gc_maxlifetime'); session_set_save_handler(array(__CLASS__, 'open'), array(__CLASS__, 'close'), array(__CLASS__, 'read'), array(__CLASS__, 'write'), array(__CLASS__, 'destroy'), array(__CLASS__, 'gc')); session_start(); return true; }
if (!$mem->mem_connect_error()) { Debug::addmsg('<font color="red">连接Memcache服务器失败,请检查!</font>'); } else { define('USEMEM', true); //设置Memcahce开启的常量 Debug::addmsg('<font color="green">启用Memcache服务器</font>'); } } else { Debug::addmsg('<font color="red">PHP没有安装Memcache扩展模块,请先安装!</font>'); } } else { Debug::addmsg('<font color="red">没有使用Memcache缓存服务器!</font>(为了程序的速度,建议使用Memcache缓存服务器)'); } //如过开启了Memcache,则将Session信息保存在Memcache缓存服务器中 if (defined('USEMEM')) { MemSession::start($mem->getMem()); Debug::addmsg('<font color="green">开启了Session(使用Memcache缓存会话信息)</font>'); } else { session_start(); Debug::addmsg('<font color="green">开启了Session</font><font color="red">(但没有使用Memcache缓存Session信息,建议开启Memcache后将自动启动)</font>'); } Debug::addmsg('会话ID:' . session_id()); Structure::create(); //初始化,部署项目的目录结构 Prourl::parseUrl(); //解析处理URL //模板文件中所有要的路径,html\css\javascript\image\link等中用到的路径,从WEB服务器的文档根开始 $spath = rtrim(substr(dirname(str_replace('\\', '/', dirname(__FILE__))), strlen(rtrim($_SERVER['DOCUMENT_ROOT'], '/\\'))), '/\\'); $GLOBALS['root'] = $spath . '/'; //WEB服务器到项目的根 $GLOBALS['public'] = $GLOBALS['root'] . 'public/';