delfimov/session

Easy to use library for managing PHP built-in sessions

v1.0.2 2018-02-20 11:05 UTC

This package is auto-updated.

Last update: 2024-11-14 22:58:12 UTC


README

License

Session

PSR-11 compatible easy to use library for managing PHP built-in sessions. PDO handler included.

Requirements

How to install

Add this line to your composer.json file:

"delfimov/session": "~1.0"

or

composer require delfimov/session

How to configure

The session management system supports a number of configuration options which you can place in your php.ini file or redefine in your code.

The most important settings with recommended values:

session.name = PHPSESSID
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 2592000
; lifetime of sessions = 60*60*24*30 = 30 days
session.use_cookies = 1
session.use_only_cookies = 1
session.cookie_lifetime = 2592000
; same as session lifetime

I highly recommend to use https protocol and marks the cookie as accessible only through the HTTP protocol.

session.cookie_secure = 1
session.cookie_httponly = 1

See PHP Sessions Runtime Configuration for more details.

An example

See example directory for sources.

require_once __DIR__ . '/../vendor/autoload.php';
$session = new DElfimov\Session\Session(
    new DElfimov\Session\Handlers\PDOHandler(
            new \PDO('mysql:dbname=testdb;host=127.0.0.1', 'dbuser', 'dbpass')
    )
);

$session->set('a', 'value a');

try {
    echo $session->get('a');
} catch (\Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

if ($session->has('b')) {
    echo 'Wonder!';
}

$session->remove('a');

TODO

  • Better code coverage
  • Handlers