qq分分彩app|qq分分彩开奖记录官网

ThinkPHP3.1.3 Seesion 阿里云OCS

瀏覽:2601 最后更新:2015-12-07 16:57 分類:驅動
本類無BUG,加上即可用。
另外鄙視那些開源發BUG代碼的人,還要說我抄襲。我鄙視你哦~愛用用,不用請……。不要亂BB!這么喜歡BB你發個無BUG的出來。燒餅玩意!


沒有找到現成的3.1.3的阿里云Ocs驅動,只能自己動手了~
文件放到 ThinkPHP3.1.3/Extend/Driver/Session/SessionOcs.class.php    'SESSION_TYPE'=>'Ocs',       //名稱
    'MEMCACHE_HOST'=>'1.ocs.aliyuncs.com', //連接地址
    'MEMCACHE_PORT'=>'11211',    //端口
    'MEMCACHE_USERNAME'=>'username',   //用戶名
    'MEMCACHE_PASSWORD'=>'password',   //密碼
以上配置中(地址,端口,用戶名,密碼)如果你是多個服務器你可以用英文的,號隔開

不成功的話我說明下..
檢測環境是否安裝memcached擴展 注意是memcached 不是 memcache

如果沒有安裝 大家可以百度下 php 安裝memcached 擴展
別忘了在php.ini里面memcached.use_sasl = 1<?php 
// +----------------------------------------------------------------------
// | ThinkPHP [ OCS Session 驅動 ] 3.1.3
// +----------------------------------------------------------------------
// | Copyright (c) 2015-2016 http://www.c2567.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: ChenSuiLong <[email protected]>
// +----------------------------------------------------------------------

defined('THINK_PATH') or exit();
/**
 * 阿里云OCS方式Session驅動
 * @category   Extend
 * @package  Extend
 * @subpackage  Driver.Session
 * @author    ChenSuiLong <[email protected]>
 */
class SessionOcs {
    /**
     * Session有效時間
     */
    protected $lifeTime      = ''; 
    /**
     * Memcached object
     */
    protected $Mem  = array(); 

    /**
     * 打開Session 
     * @access public 
     * @param string $savePath 
     * @param mixed $sessName  
     */
    public function open($savePath, $sessName) { 
                    $this->lifeTime = C('SESSION_EXPIRE')?C('SESSION_EXPIRE'):ini_get('session.gc_maxlifetime');
                        $options            = array(
                                'timeout'       => C('SESSION_TIMEOUT') ? C('SESSION_TIMEOUT') : 1,
                                'persistent'    => C('SESSION_PERSISTENT') ? C('SESSION_PERSISTENT') : 0
                        );
                $this->Mem       = new Memcached();
                //dump($this->Mem);exit;
                        $hosts              = explode(',', C('MEMCACHE_HOST'));
                        $ports              = explode(',', C('MEMCACHE_PORT'));
                        $usernames           = explode(',', C('MEMCACHE_USERNAME'));
                        $passwords           = explode(',', C('MEMCACHE_PASSWORD'));
                
                //循環緩存信息,主要是用于集群部署
                foreach ($hosts as $i=>$host) {
                                $port           = isset($ports[$i]) ? $ports[$i] : $ports[0];
                                $username       = isset($usernames[$i]) ? $usernames[$i] : $usernames[0];
                                $password       = isset($passwords[$i]) ? $passwords[$i] : $passwords[0];
                                $this->Mem->addServer($host, $port);
                    $this->Mem->setOption(Memcached::OPT_COMPRESSION, false); //關閉壓縮功能
                    $this->Mem->setOption(Memcached::OPT_BINARY_PROTOCOL, true); //使用binary二進制協議
                    $this->Mem->setSaslAuthData($username,$password);      
                        }
                return true;
    } 

    /**
     * 關閉Session 
     * @access public 
     */
    public function close() {
        $this->gc($this->lifeTime); 
        $this->Mem->close();
        $this->Mem       = null;
        return true;
    } 

    /**
     * 讀取Session 
     * @access public 
     * @param string $sessID 
     */
    public function read($sessID) { 
    return $this->Mem->get($this->sessionName.$sessID);
    } 

    /**
     * 寫入Session 
     * @access public 
     * @param string $sessID 
     * @param String $sessData  
     */
    public function write($sessID,$sessData) { 
        return $this->Mem->set($this->sessionName.$sessID, $sessData, 0, $this->lifeTime);
    } 

    /**
     * 刪除Session 
     * @access public 
     * @param string $sessID 
     */
    public function destroy($sessID) { 
        return $this->Mem->delete($this->sessionName.$sessID);
    } 

    /**
     * Session 垃圾回收
     * @access public 
     * @param string $sessMaxLifeTime 
     */
    public function gc($sessMaxLifeTime) { 
        return true;
    } 

    /**
     * 打開Session 
     * @access public 
     */
    public function execute() {
            session_set_save_handler(array(&$this,"open"), 
                                             array(&$this,"close"), 
                                             array(&$this,"read"), 
                                             array(&$this,"write"), 
                                             array(&$this,"destroy"), 
                                             array(&$this,"gc")); 
    }
}
評論( 相關
后面還有條評論,點擊查看>>
qq分分彩app