dotkernel/dot-session

Dotkernel session component extending and customizing laminas-session

5.7.0 2025-03-08 05:35 UTC

README

Dotkernel session component extending and customizing laminas-session

dot-session is a wrapper on top of laminas/laminas-session

Documentation

Documentation is available at: https://docs.dotkernel.org/dot-session/.

Badges

OSS Lifecycle PHP from Packagist (specify version)

GitHub issues GitHub forks GitHub stars GitHub license

Build Static codecov PHPStan

Installation

Run the following command in your project folder

    composer require dotkernel/dot-session

Configuration

Register SessionMiddleware in your application's pipeline by adding the following line to config/pipeline.php:

    $app->pipe(Dot\Session\SessionMiddleware::class);

Register dot-session's ConfigProvider in your application's configurations by adding the following line to config/config.php:

    \Dot\Session\ConfigProvider::class,

Usage

Basic usage to access and use the session object in your services:

Method #1 - Factory

Step 1: Create a factory that retrieves the SessionManger from the container

class ExampleFactory
{
    // code
    
    public function __invoke(ContainerInterface $container)
    {
        return new ExampleService(
            $container->get(SessionManager::class)
        )
    }
}

Register the factory in any mode you register factories on your project.

Step 2: Access through your Service

class ExampleService
{
    private SessionManager $session;
    
    public function __construct(SessionManager $session) 
    {
        $this->session = $session;
    }
    
     //your methods
}

Method #2 - Injection

If you use annotated injection you can inject the Session Manager in your services.

use Dot\AnnotatedServices\Annotation\Inject;
use Laminas\Session\SessionManager;

class ExampleService
{
    private SessionManager $session;
    
     /**
     * @Inject({SessionManager::class})
     */
    public function __construct(SessionManager $session) 
    {
        $this->session = $session;
    }
    
     //your methods
}