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