This library is a simple object oriented alternative to the $_SESSION superglobal allowing application code to be passed encapsulated SessionStore
objects, so areas of code can have access to their own Session area without having full read-write access to all session variables.
Sessions are addressed using dot notation, allowing for handling categories of session data. This is particularly useful when dealing with user authentication, for example.
if($session->contains("auth")) {
// Remove the *whole* auth section of the session on logout.
if($action === "logout") {
$session->delete("auth");
}
else {
// Output a variable within the auth namespace:
$message = "Welcome back, " . $session->getString("auth.user.name");
}
}
else {
// Pass the "auth" store to a class, so it
// can't read/write to other session variables:
AuthenticationSystem::beginLogin($session->getStore("auth"));
}