Joomla Platform  13.1
Documentation des API du framework Joomla Platform
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
xcache.php
Aller à la documentation de ce fichier.
1 <?php
2 /**
3  * @package Joomla.Platform
4  * @subpackage Session
5  *
6  * @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
7  * @license GNU General Public License version 2 or later; see LICENSE
8  */
9 
10 defined('JPATH_PLATFORM') or die;
11 
12 /**
13  * XCache session storage handler
14  *
15  * @package Joomla.Platform
16  * @subpackage Session
17  * @since 11.1
18  */
20 {
21  /**
22  * Constructor
23  *
24  * @param array $options Optional parameters.
25  *
26  * @since 11.1
27  * @throws RuntimeException
28  */
29  public function __construct($options = array())
30  {
31  if (!self::isSupported())
32  {
33  throw new RuntimeException('XCache Extension is not available', 404);
34  }
35 
36  parent::__construct($options);
37  }
38 
39  /**
40  * Read the data for a particular session identifier from the SessionHandler backend.
41  *
42  * @param string $id The session identifier.
43  *
44  * @return string The session data.
45  *
46  * @since 11.1
47  */
48  public function read($id)
49  {
50  $sess_id = 'sess_' . $id;
51 
52  // Check if id exists
53  if (!xcache_isset($sess_id))
54  {
55  return;
56  }
57 
58  return (string) xcache_get($sess_id);
59  }
60 
61  /**
62  * Write session data to the SessionHandler backend.
63  *
64  * @param string $id The session identifier.
65  * @param string $session_data The session data.
66  *
67  * @return boolean True on success, false otherwise.
68  *
69  * @since 11.1
70  */
71  public function write($id, $session_data)
72  {
73  $sess_id = 'sess_' . $id;
74  return xcache_set($sess_id, $session_data, ini_get("session.gc_maxlifetime"));
75  }
76 
77  /**
78  * Destroy the data for a particular session identifier in the SessionHandler backend.
79  *
80  * @param string $id The session identifier.
81  *
82  * @return boolean True on success, false otherwise.
83  *
84  * @since 11.1
85  */
86  public function destroy($id)
87  {
88  $sess_id = 'sess_' . $id;
89 
90  if (!xcache_isset($sess_id))
91  {
92  return true;
93  }
94 
95  return xcache_unset($sess_id);
96  }
97 
98  /**
99  * Test to see if the SessionHandler is available.
100  *
101  * @return boolean True on success, false otherwise.
102  *
103  * @since 12.1
104  */
105  static public function isSupported()
106  {
107  return (extension_loaded('xcache'));
108  }
109 }