You've already forked joomla_test
							
							
		
			
	
	
		
			110 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			110 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | /** | ||
|  |  * @package     Joomla.Platform | ||
|  |  * @subpackage  Session | ||
|  |  * | ||
|  |  * @copyright   Copyright (C) 2005 - 2013 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')); | ||
|  | 	} | ||
|  | } |