PHP code example of phpdevcommunity / php-session

1. Go to this page and download the library: Download phpdevcommunity/php-session library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

phpdevcommunity / php-session example snippets


use PhpDevCommunity\Session\Storage\NativeSessionStorage;

// Create a new session storage instance

/**
 * Constructor for NativeSessionStorage class.
 *
 * @param array $options Options for session start.
 *                      Possible options:
 *                      - 'name': Session name
 *                      - 'lifetime': Session lifetime
 *                      - 'path': Session save path
 *                      - 'domain': Session domain
 *                      - 'secure': Set to true for secure session
 *                      - 'httponly': Set to true to only allow HTTP access
 * @throws \RuntimeException If session start fails.
 */
$sessionStorage = new NativeSessionStorage();

if ($sessionStorage->has('user_id')) {
    // Do something with the user_id
}

$userName = $sessionStorage->get('username', 'Guest');
// If the 'username' key exists in the session, $userName will be set to its value,
// otherwise, it will be set to 'Guest'.

$userId = 123;
$sessionStorage->put('user_id', $userId);

$sessionStorage->remove('user_id');

$allData = $sessionStorage->all();

use PhpDevCommunity\Session\Storage\SessionStorageInterface;

class MyCustomSessionStorage implements SessionStorageInterface
{
    private array $storage;

    public function __construct()
    {
        // Initialize your custom storage mechanism here
        // For example, you could use a database, Redis, or any other storage solution.
        // In this example, we will use an array as a simple custom storage mechanism.
        $this->storage = [];
    }

    public function get(string $key, $default = null)
    {
        return $this->storage[$key] ?? $default;
    }

    public function put(string $key, $value = null): void
    {
        $this->storage[$key] = $value;
    }

    public function all(): array
    {
        return $this->storage;
    }

    public function has(string $key): bool
    {
        return isset($this->storage[$key]);
    }

    public function remove(string $key): void
    {
        unset($this->storage[$key]);
    }

    // Implementing ArrayAccess methods

    public function offsetExists($offset): bool
    {
        return isset($this->storage[$offset]);
    }

    public function offsetGet($offset)
    {
        return $this->get($offset);
    }

    public function offsetSet($offset, $value): void
    {
        $this->put($offset, $value);
    }

    public function offsetUnset($offset): void
    {
        $this->remove($offset);
    }
}

composer