Get memcache object from rcmail instance
| | |
| | | public $db; |
| | | |
| | | /** |
| | | * Instace of Memcache class. |
| | | * |
| | | * @var rcube_mdb2 |
| | | */ |
| | | public $memcache; |
| | | |
| | | /** |
| | | * Instace of rcube_session class. |
| | | * |
| | | * @var rcube_session |
| | |
| | | |
| | | |
| | | /** |
| | | * Get global handle for memcache access |
| | | * |
| | | * @return object Memcache |
| | | */ |
| | | public function get_memcache() |
| | | { |
| | | if (!isset($this->memcache)) { |
| | | // no memcache support in PHP |
| | | if (!class_exists('Memcache')) { |
| | | $this->memcache = false; |
| | | return false; |
| | | } |
| | | |
| | | $this->memcache = new Memcache; |
| | | $mc_available = 0; |
| | | foreach ($this->config->get('memcache_hosts', array()) as $host) { |
| | | list($host, $port) = explode(':', $host); |
| | | if (!$port) $port = 11211; |
| | | // add server and attempt to connect if not already done yet |
| | | if ($this->memcache->addServer($host, $port) && !$mc_available) |
| | | $mc_available += intval($this->memcache->connect($host, $port)); |
| | | } |
| | | |
| | | if (!$mc_available) |
| | | $this->memcache = false; |
| | | } |
| | | |
| | | return $this->memcache; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Return instance of the internal address book class |
| | | * |
| | | * @param string Address book identifier |
| | |
| | | |
| | | // use memcache backend |
| | | if ($config->get('session_storage', 'db') == 'memcache') { |
| | | $this->memcache = new Memcache; |
| | | $mc_available = 0; |
| | | foreach ($config->get('memcache_hosts', array()) as $host) { |
| | | list($host, $port) = explode(':', $host); |
| | | if (!$port) $port = 11211; |
| | | // add server and attempt to connect if not already done yet |
| | | if ($this->memcache->addServer($host, $port) && !$mc_available) |
| | | $mc_available += intval($this->memcache->connect($host, $port)); |
| | | } |
| | | $this->memcache = rcmail::get_instance()->get_memcache(); |
| | | |
| | | // set custom functions for PHP session management if memcache is available |
| | | if ($mc_available) { |
| | | if ($this->memcache) { |
| | | session_set_save_handler( |
| | | array($this, 'open'), |
| | | array($this, 'close'), |