sessionManager
Installation
loadfunction("session");
1. Write Single Session Value
Write a single key-value pair into the session:
// Write single session value
session_write('user_id', 101);
✔ Holds session lock briefly
✔ Releases lock immediately
2. Write Multiple Session Values
Write multiple values into the session in one operation:
// Write multiple session values
session_write_array([
'logged_in' => true,
'last_seen' => time()
]);
✔ Efficient batch write
✔ Lock held for microseconds only
3. Write Grouped / Namespaced Session Data
Store related session values under a logical namespace:
// Write grouped session data
session_write_group('auth', [
'user_id' => 101,
'role' => 'ADMIN'
]);
✔ Keeps session data organized
✔ Accessible via $_SESSION['auth']
4. Read Session Value (Lock-Free)
Read a session value without acquiring a session lock:
// Read session value
$userId = session_read('user_id');
✔ Uses read_and_close
✔ Safe for parallel API requests
5. Read Grouped Session Value
Read a value from a grouped session namespace:
// Read grouped session value
$role = session_read_group('auth', 'role');
✔ Lock-free read operation
✔ Safe in long-running processes
6. Check if Session Key Exists
Verify whether a session key exists:
// Check if session key exists
if (session_has('user_id')) {
echo "User session exists";
}
✔ No session lock acquired
✔ Useful for authentication checks
7. Get Logged-in User Roles
Retrieve role IDs assigned to the logged-in user:
// Get role IDs
$roles = getRoles();
✔ Supports array or comma-separated storage
✔ Backward compatible with legacy data
8. Get Logged-in User Role Names
Retrieve role names assigned to the logged-in user:
// Get role names
$roleNames = getRoleNames();
✔ Works with both string and array formats
✔ No additional memory overhead
9. Check User Role
Check whether the logged-in user has a specific role:
// Check role by ID or name
if (hasRole('ADMIN')) {
echo "Access granted";
}
✔ Checks role IDs and role names
✔ Suitable for authorization logic
10. Role Alias Helper
Semantic alias for improved readability:
// Alias for hasRole()
havingRole('EDITOR');
✔ Same behavior as hasRole()
✔ Improves code readability
11. Remove Session Key
Remove a specific key from the session:
// Remove session key
session_forget('csrf_token');
✔ Does not affect other session data
✔ Lock released immediately
12. Destroy Session (Logout)
Completely destroy the session and invalidate the cookie:
// Destroy session safely
session_destroy_safe();
✔ Clears all session data
✔ Invalidates session cookie
✔ Safe under parallel requests