* session_set_save_handler(new Memcache(), true);
session_start();
* * @author Stefan Daurer * @package Mammut\Session * @since 1.1.0.0 */ class MemcacheSession extends \Mammut\StrictObject implements \SessionHandlerInterface { private $lifetime = 600; /** * @var \Memcached */ private $pool; private $fallback = false; public function __construct($server = 'localhost', $port = 11211) { $lifetime = ini_get('session.gc_maxlifetime'); if (!empty($lifetime)) $this->lifetime = (int) $lifetime; if (!class_exists('\\Memcached')) { $this->fallback = true; $this->pool = new \Memcache(); } else $this->pool = new \Memcached('phpsession'); if (!is_array($server)) $server = array($server); foreach ($server as $s) $this->pool->addServer($s, $port); } public function open($save_path, $session_name) { return true; } public function read($id) { return $this->pool->get("sessions/{$id}"); } public function write($id, $data) { if ($this->fallback) return $this->pool->set("sessions/{$id}", $data, 0, $this->lifetime); else return $this->pool->set("sessions/{$id}", $data, $this->lifetime); } public function destroy($id) { return $this->pool->delete("sessions/{$id}"); } public function gc($maxlifetime){ return true; } public function close(){ return true; } public function __destruct() { session_write_close(); } }