/** * Initialize HandlerSocket. * * @param array $options associative array of options * @throws \Phalcon\Session\Exception */ protected function init($options) { if (empty($options['server'])) { $options['server'] = array(); } if (empty($options['server']['host'])) { $options['server']['host'] = self::DEFAULT_HOST; } if (empty($options['server']['port'])) { $options['server']['port'] = self::DEFAULT_PORT; } if (empty($options['server']['dbname'])) { $options['server']['dbname'] = self::DEFAULT_DBNAME; } if (empty($options['server']['dbtable'])) { $options['server']['dbtable'] = self::DEFAULT_DBTABLE; } //update options $this->options = $options; if (!extension_loaded('handlersocket')) { throw new Exception('The handlersocket extension must be loaded for using session!'); } // load handlersocket server $this->hs = new \HandlerSocket($options['server']['host'], $options['server']['port']); // open handlersocket index $result = $this->hs->openIndex($this->hsIndex, $options['server']['dbname'], $options['server']['dbtable'], \HandlerSocket::PRIMARY, self::DB_FIELDS); if (!$result) { throw new Exception('The HandlerSocket database specified in the options does not exist.'); } }