1: <?php
2: /**
3: * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
4: * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
5: *
6: * Licensed under The MIT License
7: * Redistributions of files must retain the above copyright notice.
8: *
9: * @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
10: * @link http://cakephp.org CakePHP(tm) Project
11: * @package Cake.Model.Datasource
12: * @since CakePHP(tm) v 2.1
13: * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
14: */
15:
16: /**
17: * Interface for Session handlers. Custom session handler classes should implement
18: * this interface as it allows CakeSession know how to map methods to session_set_save_handler()
19: *
20: * @package Cake.Model.Datasource.Session
21: */
22: interface CakeSessionHandlerInterface {
23:
24: /**
25: * Method called on open of a session.
26: *
27: * @return boolean Success
28: */
29: public function open();
30:
31: /**
32: * Method called on close of a session.
33: *
34: * @return boolean Success
35: */
36: public function close();
37:
38: /**
39: * Method used to read from a session.
40: *
41: * @param string $id The key of the value to read
42: * @return mixed The value of the key or false if it does not exist
43: */
44: public function read($id);
45:
46: /**
47: * Helper function called on write for sessions.
48: *
49: * @param integer $id ID that uniquely identifies session in database
50: * @param mixed $data The value of the data to be saved.
51: * @return boolean True for successful write, false otherwise.
52: */
53: public function write($id, $data);
54:
55: /**
56: * Method called on the destruction of a session.
57: *
58: * @param integer $id ID that uniquely identifies session in database
59: * @return boolean True for successful delete, false otherwise.
60: */
61: public function destroy($id);
62:
63: /**
64: * Run the Garbage collection on the session storage. This method should vacuum all
65: * expired or dead sessions.
66: *
67: * @param integer $expires Timestamp (defaults to current time)
68: * @return boolean Success
69: */
70: public function gc($expires = null);
71:
72: }
73: