forked from codeigniter4/CodeIgniter4
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSessionInterface.php
More file actions
206 lines (185 loc) · 6.18 KB
/
SessionInterface.php
File metadata and controls
206 lines (185 loc) · 6.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<?php
declare(strict_types=1);
/**
* This file is part of CodeIgniter 4 framework.
*
* (c) CodeIgniter Foundation <admin@codeigniter.com>
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace CodeIgniter\Session;
/**
* Expected behavior of a session container used with CodeIgniter.
*/
interface SessionInterface
{
/**
* Regenerates the session ID.
*
* @param bool $destroy Should old session data be destroyed?
*
* @return void
*/
public function regenerate(bool $destroy = false);
/**
* Destroys the current session.
*
* @return void
*/
public function destroy();
/**
* Sets user data into the session.
*
* If $data is a string, then it is interpreted as a session property
* key, and $value is expected to be non-null.
*
* If $data is an array, it is expected to be an array of key/value pairs
* to be set as session properties.
*
* @param array|string $data Property name or associative array of properties
* @param array|bool|float|int|object|string|null $value Property value if single key provided
*
* @return void
*/
public function set($data, $value = null);
/**
* Get user data that has been set in the session.
*
* If the property exists as "normal", returns it.
* Otherwise, returns an array of any temp or flash data values with the
* property key.
*
* Replaces the legacy method $session->userdata();
*
* @param non-empty-string|null $key Identifier of the session property to retrieve
*
* @return array|bool|float|int|object|string|null The property value(s)
*/
public function get(?string $key = null);
/**
* Returns whether an index exists in the session array.
*
* @param string $key Identifier of the session property we are interested in.
*/
public function has(string $key): bool;
/**
* Remove one or more session properties.
*
* If $key is an array, it is interpreted as an array of string property
* identifiers to remove. Otherwise, it is interpreted as the identifier
* of a specific session property to remove.
*
* @param array|string $key Identifier of the session property or properties to remove.
*
* @return void
*/
public function remove($key);
/**
* Sets data into the session that will only last for a single request.
* Perfect for use with single-use status update messages.
*
* If $data is an array, it is interpreted as an associative array of
* key/value pairs for flashdata properties.
* Otherwise, it is interpreted as the identifier of a specific
* flashdata property, with $value containing the property value.
*
* @param array|string $data Property identifier or associative array of properties
* @param array|string $value Property value if $data is a scalar
*
* @return void
*/
public function setFlashdata($data, $value = null);
/**
* Retrieve one or more items of flash data from the session.
*
* If the item key is null, return all flashdata.
*
* @param string $key Property identifier
*
* @return array|null The requested property value, or an associative
* array of them
*/
public function getFlashdata(?string $key = null);
/**
* Keeps a single piece of flash data alive for one more request.
*
* @param array|string $key Property identifier or array of them
*
* @return void
*/
public function keepFlashdata($key);
/**
* Mark a session property or properties as flashdata.
*
* @param array|string $key Property identifier or array of them
*
* @return false if any of the properties are not already set
*/
public function markAsFlashdata($key);
/**
* Unmark data in the session as flashdata.
*
* @param array|string $key Property identifier or array of them
*
* @return void
*/
public function unmarkFlashdata($key);
/**
* Retrieve all of the keys for session data marked as flashdata.
*
* @return array The property names of all flashdata
*/
public function getFlashKeys(): array;
/**
* Sets new data into the session, and marks it as temporary data
* with a set lifespan.
*
* @param array|string $data Session data key or associative array of items
* @param array|bool|float|int|object|string|null $value Value to store
* @param int $ttl Time-to-live in seconds
*
* @return void
*/
public function setTempdata($data, $value = null, int $ttl = 300);
/**
* Returns either a single piece of tempdata, or all temp data currently
* in the session.
*
* @param string $key Session data key
*
* @return array|bool|float|int|object|string|null Session data value or null if not found.
*/
public function getTempdata(?string $key = null);
/**
* Removes a single piece of temporary data from the session.
*
* @param string $key Session data key
*
* @return void
*/
public function removeTempdata(string $key);
/**
* Mark one of more pieces of data as being temporary, meaning that
* it has a set lifespan within the session.
*
* @param array|string $key Property identifier or array of them
* @param int $ttl Time to live, in seconds
*
* @return bool False if any of the properties were not set
*/
public function markAsTempdata($key, int $ttl = 300);
/**
* Unmarks temporary data in the session, effectively removing its
* lifespan and allowing it to live as long as the session does.
*
* @param array|string $key Property identifier or array of them
*
* @return void
*/
public function unmarkTempdata($key);
/**
* Retrieve the keys of all session data that have been marked as temporary data.
*/
public function getTempKeys(): array;
}