/** * @param Object $config */ public function __construct($config) { parent::__construct($config); $this->memcache = rcube::get_instance()->get_memcache(); $this->debug = $config->get('memcache_debug'); if (!$this->memcache) { rcube::raise_error(array('code' => 604, 'type' => 'db', 'line' => __LINE__, 'file' => __FILE__, 'message' => "Failed to connect to memcached. Please check configuration"), true, true); } // register sessions handler $this->register_session_handler(); }
/** * @param Object $config */ public function __construct($config) { parent::__construct($config); // get db instance $this->db = rcube::get_instance()->get_dbh(); // session table name $this->table_name = $this->db->table_name('session', true); // register sessions handler $this->register_session_handler(); // register db gc handler $this->register_gc_handler(array($this, 'gc_db')); }
/** * @param Object $config */ public function __construct($config) { parent::__construct($config); // instantiate Redis object $this->redis = new Redis(); if (!$this->redis) { rcube::raise_error(array('code' => 604, 'type' => 'session', 'line' => __LINE__, 'file' => __FILE__, 'message' => "Failed to find Redis. Make sure php-redis is included"), true, true); } // get config instance $hosts = $this->config->get('redis_hosts', array('localhost')); // host config is wrong if (!is_array($hosts) || empty($hosts)) { rcube::raise_error(array('code' => 604, 'type' => 'session', 'line' => __LINE__, 'file' => __FILE__, 'message' => "Redis host not configured"), true, true); } // only allow 1 host for now until we support clustering if (count($hosts) > 1) { rcube::raise_error(array('code' => 604, 'type' => 'session', 'line' => __LINE__, 'file' => __FILE__, 'message' => "Redis cluster not yet supported"), true, true); } foreach ($hosts as $host) { // explode individual fields list($host, $port, $database, $password) = array_pad(explode(':', $host, 4), 4, null); // set default values if not set $host = $host !== null ? $host : '127.0.0.1'; $port = $port !== null ? $port : 6379; $database = $database !== null ? $database : 0; if ($this->redis->connect($host, $port) === false) { rcube::raise_error(array('code' => 604, 'type' => 'session', 'line' => __LINE__, 'file' => __FILE__, 'message' => "Could not connect to Redis server. Please check host and port"), true, true); } if ($password != null && $this->redis->auth($password) === false) { rcube::raise_error(array('code' => 604, 'type' => 'session', 'line' => __LINE__, 'file' => __FILE__, 'message' => "Could not authenticate with Redis server. Please check password."), true, true); } if ($database != 0 && $this->redis->select($database) === false) { rcube::raise_error(array('code' => 604, 'type' => 'session', 'line' => __LINE__, 'file' => __FILE__, 'message' => "Could not select Redis database. Please check database setting."), true, true); } } // register sessions handler $this->register_session_handler(); }
/** * @param Object $config */ public function __construct($config) { parent::__construct($config); }