1: <?php
2:
3: /*
4: * This file is part of the Symfony package.
5: *
6: * (c) Fabien Potencier <[email protected]>
7: *
8: * For the full copyright and license information, please view the LICENSE
9: * file that was distributed with this source code.
10: */
11:
12: namespace Symfony\Component\HttpFoundation\Session;
13:
14: use Symfony\Component\HttpFoundation\Session\Storage\MetadataBag;
15:
16: /**
17: * Interface for the session.
18: *
19: * @author Drak <[email protected]>
20: */
21: interface SessionInterface
22: {
23: /**
24: * Starts the session storage.
25: *
26: * @return bool True if session started
27: *
28: * @throws \RuntimeException If session fails to start.
29: */
30: public function start();
31:
32: /**
33: * Returns the session ID.
34: *
35: * @return string The session ID
36: */
37: public function getId();
38:
39: /**
40: * Sets the session ID.
41: *
42: * @param string $id
43: */
44: public function setId($id);
45:
46: /**
47: * Returns the session name.
48: *
49: * @return mixed The session name
50: */
51: public function getName();
52:
53: /**
54: * Sets the session name.
55: *
56: * @param string $name
57: */
58: public function setName($name);
59:
60: /**
61: * Invalidates the current session.
62: *
63: * Clears all session attributes and flashes and regenerates the
64: * session and deletes the old session from persistence.
65: *
66: * @param int $lifetime Sets the cookie lifetime for the session cookie. A null value
67: * will leave the system settings unchanged, 0 sets the cookie
68: * to expire with browser session. Time is in seconds, and is
69: * not a Unix timestamp.
70: *
71: * @return bool True if session invalidated, false if error
72: */
73: public function invalidate($lifetime = null);
74:
75: /**
76: * Migrates the current session to a new session id while maintaining all
77: * session attributes.
78: *
79: * @param bool $destroy Whether to delete the old session or leave it to garbage collection
80: * @param int $lifetime Sets the cookie lifetime for the session cookie. A null value
81: * will leave the system settings unchanged, 0 sets the cookie
82: * to expire with browser session. Time is in seconds, and is
83: * not a Unix timestamp.
84: *
85: * @return bool True if session migrated, false if error
86: */
87: public function migrate($destroy = false, $lifetime = null);
88:
89: /**
90: * Force the session to be saved and closed.
91: *
92: * This method is generally not required for real sessions as
93: * the session will be automatically saved at the end of
94: * code execution.
95: */
96: public function save();
97:
98: /**
99: * Checks if an attribute is defined.
100: *
101: * @param string $name The attribute name
102: *
103: * @return bool true if the attribute is defined, false otherwise
104: */
105: public function has($name);
106:
107: /**
108: * Returns an attribute.
109: *
110: * @param string $name The attribute name
111: * @param mixed $default The default value if not found
112: *
113: * @return mixed
114: */
115: public function get($name, $default = null);
116:
117: /**
118: * Sets an attribute.
119: *
120: * @param string $name
121: * @param mixed $value
122: */
123: public function set($name, $value);
124:
125: /**
126: * Returns attributes.
127: *
128: * @return array Attributes
129: */
130: public function all();
131:
132: /**
133: * Sets attributes.
134: *
135: * @param array $attributes Attributes
136: */
137: public function replace(array $attributes);
138:
139: /**
140: * Removes an attribute.
141: *
142: * @param string $name
143: *
144: * @return mixed The removed value or null when it does not exist
145: */
146: public function remove($name);
147:
148: /**
149: * Clears all attributes.
150: */
151: public function clear();
152:
153: /**
154: * Checks if the session was started.
155: *
156: * @return bool
157: */
158: public function isStarted();
159:
160: /**
161: * Registers a SessionBagInterface with the session.
162: *
163: * @param SessionBagInterface $bag
164: */
165: public function registerBag(SessionBagInterface $bag);
166:
167: /**
168: * Gets a bag instance by name.
169: *
170: * @param string $name
171: *
172: * @return SessionBagInterface
173: */
174: public function getBag($name);
175:
176: /**
177: * Gets session meta.
178: *
179: * @return MetadataBag
180: */
181: public function getMetadataBag();
182: }
183: