/libraries/joomla/session/storage/xcache.php
https://bitbucket.org/eternaware/joomus · PHP · 109 lines · 40 code · 11 blank · 58 comment · 3 complexity · b67430829846f996660572e325915721 MD5 · raw file
- <?php
- /**
- * @package Joomla.Platform
- * @subpackage Session
- *
- * @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
- * @license GNU General Public License version 2 or later; see LICENSE
- */
- defined('JPATH_PLATFORM') or die;
- /**
- * XCache session storage handler
- *
- * @package Joomla.Platform
- * @subpackage Session
- * @since 11.1
- */
- class JSessionStorageXcache extends JSessionStorage
- {
- /**
- * Constructor
- *
- * @param array $options Optional parameters.
- *
- * @since 11.1
- * @throws RuntimeException
- */
- public function __construct($options = array())
- {
- if (!self::isSupported())
- {
- throw new RuntimeException('XCache Extension is not available', 404);
- }
- parent::__construct($options);
- }
- /**
- * Read the data for a particular session identifier from the SessionHandler backend.
- *
- * @param string $id The session identifier.
- *
- * @return string The session data.
- *
- * @since 11.1
- */
- public function read($id)
- {
- $sess_id = 'sess_' . $id;
- // Check if id exists
- if (!xcache_isset($sess_id))
- {
- return;
- }
- return (string) xcache_get($sess_id);
- }
- /**
- * Write session data to the SessionHandler backend.
- *
- * @param string $id The session identifier.
- * @param string $session_data The session data.
- *
- * @return boolean True on success, false otherwise.
- *
- * @since 11.1
- */
- public function write($id, $session_data)
- {
- $sess_id = 'sess_' . $id;
- return xcache_set($sess_id, $session_data, ini_get("session.gc_maxlifetime"));
- }
- /**
- * Destroy the data for a particular session identifier in the SessionHandler backend.
- *
- * @param string $id The session identifier.
- *
- * @return boolean True on success, false otherwise.
- *
- * @since 11.1
- */
- public function destroy($id)
- {
- $sess_id = 'sess_' . $id;
- if (!xcache_isset($sess_id))
- {
- return true;
- }
- return xcache_unset($sess_id);
- }
- /**
- * Test to see if the SessionHandler is available.
- *
- * @return boolean True on success, false otherwise.
- *
- * @since 12.1
- */
- static public function isSupported()
- {
- return (extension_loaded('xcache'));
- }
- }