PHPackages                             ddrv/slim-session - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. ddrv/slim-session

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

ddrv/slim-session
=================

PHP library for sessions

v2.0.1(5y ago)052MITPHPPHP &gt;=7.1

Since Apr 22Pushed 5y ago1 watchersCompare

[ Source](https://github.com/ddrv/php-slim-session)[ Packagist](https://packagist.org/packages/ddrv/slim-session)[ RSS](/packages/ddrv-slim-session/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (5)Versions (6)Used By (0)

[![Latest Stable Version](https://camo.githubusercontent.com/37c3ae4cc71ad8f00a1f9aa852b911c339f4dbcff26438faffafaa8307db4f11/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f646472762f736c696d2d73657373696f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ddrv/slim-session)[![Total Downloads](https://camo.githubusercontent.com/ecffdd6ed7776fa9dd562b8e9fce01c14c3089516fb4cc7b35995742968d6c91/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f646472762f736c696d2d73657373696f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ddrv/slim-session/stats)[![License](https://camo.githubusercontent.com/69fd70c34bd42d01fc722821fe66ace7e90179650f0f079f9a39d60cad67a467/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f646472762f736c696d2d73657373696f6e2e7376673f7374796c653d666c61742d737175617265)](https://github.com/ddrv/slim-session/blob/master/LICENSE)[![PHP](https://camo.githubusercontent.com/382c8875f6343cd22a447c9970cbefa608c01b6c84a1e5a791341eedcdca1f2a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f646472762f736c696d2d73657373696f6e2e7376673f7374796c653d666c61742d737175617265)](https://php.net)

ddrv/slim-session
=================

[](#ddrvslim-session)

PHP Library for work with sessions.

install
-------

[](#install)

1. Run in console: ```
    composer require ddrv/slim-session:^2.0

    ```
2. Include autoload file ```
    require_once('vendor/autoload.php');
    ```

Integration in legacy code
--------------------------

[](#integration-in-legacy-code)

> For example, session cookie name used as `sess_id`.

1. Init storage and handler (for example, `\Ddrv\Slim\Session\Storage\FileHandler`, but it may be any implementation of `\Ddrv\Slim\Session\Storage` interface).

    ```
    $storage = new Ddrv\Slim\Session\Storage\FileStorage('/path/to/sessions', 'sess_id');
    $handler = new Ddrv\Slim\Session\Handler($storage);
    ```
2. Define session ID and start the session

    ```
    /** @var Ddrv\Slim\Session\Handler $handler */
    $sessionId = array_key_exists('sess_id', $_COOKIE) ? $_COOKIE['sess_id'] : $handler->generateId();
    $session = $handler->read($sessionId);

    // some logic

    // When you need to update session ID do
    $session->regenerate();

    // some logic

    if ($session->isNeedRegenerate()) {
        $handler->destroy($sessionId);
        $sessionId = $handler->generateId();
    }

    $handler->write($sessionId, $session); // store data to storage and close session
    // add session cookie to response
    setcookie('sess_id', $sessionId, time() + 86400, '/', '.example.com', false, true);
    ```
3. When you need to destroy the session do

    ```
    /** @var string $sessionId */
    /** @var Ddrv\Slim\Session\Handler $handler */
    $handler->destroy($sessionId);
    setcookie('sess_id', "", time() + 86400, '/', '.example.com', false, true);
    ```

Integration in PRS Frameworks
-----------------------------

[](#integration-in-prs-frameworks)

This package contains the `Psr\Http\Server\MiddlewareInterface` (`PSR-15`) implementation. See `Ddrv\Slim\Session\Middleware\SessionMiddleware` class.

Using
-----

[](#using)

### Use session as key-value storage

[](#use-session-as-key-value-storage)

```
/** @var Ddrv\Slim\Session\Session $session */
$session->set('key1', 'value');
$session->set('key2', ['a', 'b', 'c']);
$value = $session->get('key1'); // 'value'
$value = $session->get('key1', 'default'); // 'value'
$value = $session->get('nonexistent-key'); // null
$value = $session->get('nonexistent-key', 'default'); // 'default'
```

### Use a flash messages

[](#use-a-flash-messages)

```
/** @var Ddrv\Slim\Session\Session $session */
$session->flash('key1', 'value'); // 'key1' will be stored only for the current and the next request

// Current request
$session->has('key1');          // true
$value = $session->get('key1'); // 'value'

// Next request
$session->has('key1');          // true
$value = $session->get('key1'); // 'value'

// Other request
$session->has('key1');          // false
$value = $session->get('key1'); // null
```

### Use a counters

[](#use-a-counters)

```
/** @var Ddrv\Slim\Session\Session $session */
$session->increment('counter_1'); // 1
$session->increment('counter_1'); // 2
$session->increment('counter_1'); // 3
$session->increment('counter_1'); // 4
$session->increment('counter_1'); // 5
$session->decrement('counter_1'); // 4
$session->decrement('counter_1'); // 3
$session->decrement('counter_1'); // 2
$session->counter('counter_1');   // 2
$session->reset('counter_1');     // 0
$session->counter('counter_1');   // 0
```

Removing old sessions
---------------------

[](#removing-old-sessions)

Remove old sessions from storage from time to time.

```
/** @var Ddrv\Slim\Session\Handler $handler */
$handler->removeExpiredSessions(); // Delete sessions not used during the day
```

Encryption
----------

[](#encryption)

You can use encryption for session data. Use `Ddrv\Slim\Session\Handler\EncryptionHandlerDecorator` for it (required `openssl` PHP extension).

```
/** @var Ddrv\Slim\Session\Storage $handler */
$cryptHandler = new Ddrv\Slim\Session\Storage\EncryptedStorageDecorator($handler, 'secret-key', 16);
```

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~123 days

Total

3

Last Release

1961d ago

Major Versions

v1.0.0 → v2.0.02020-12-24

### Community

Maintainers

![](https://www.gravatar.com/avatar/ea2891b82f2e0019d838940e1a73fb1af3baeb0d6c06f966ee4b3d6b7278b528?d=identicon)[ddrv](/maintainers/ddrv)

---

Top Contributors

[![ddrv](https://avatars.githubusercontent.com/u/24430614?v=4)](https://github.com/ddrv "ddrv (13 commits)")

---

Tags

sessionsflash-messages

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/ddrv-slim-session/health.svg)

```
[![Health](https://phpackages.com/badges/ddrv-slim-session/health.svg)](https://phpackages.com/packages/ddrv-slim-session)
```

###  Alternatives

[jaxon-php/jaxon-core

Jaxon is an open source PHP library for easily creating Ajax web applications

73142.3k25](/packages/jaxon-php-jaxon-core)[eliashaeussler/typo3-solver

Extension for TYPO3 CMS to extend TYPO3's exception handling with AI generated solutions

292.1k](/packages/eliashaeussler-typo3-solver)[los/basepath

PHP middleware to remove a path prefix from request uri

14132.4k](/packages/los-basepath)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
