https://github.com/dotkernel/dot-session
DotKernel session component extending and customizing laminas-session
https://github.com/dotkernel/dot-session
Last synced: 6 months ago
JSON representation
DotKernel session component extending and customizing laminas-session
- Host: GitHub
- URL: https://github.com/dotkernel/dot-session
- Owner: dotkernel
- License: mit
- Created: 2016-09-09T16:07:07.000Z (over 9 years ago)
- Default Branch: 5.0
- Last Pushed: 2025-03-14T15:30:31.000Z (9 months ago)
- Last Synced: 2025-06-01T12:10:01.416Z (7 months ago)
- Language: PHP
- Homepage: https://docs.dotkernel.org/dot-session/
- Size: 129 KB
- Stars: 5
- Watchers: 3
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# dot-session
Dotkernel session component extending and customizing [laminas-session](https://github.com/laminas/laminas-session)
> dot-session is a wrapper on top of [laminas/laminas-session](https://github.com/laminas/laminas-session)
## Documentation
Documentation is available at: https://docs.dotkernel.org/dot-session/.
## Badges


[](https://github.com/dotkernel/dot-session/issues)
[](https://github.com/dotkernel/dot-session/network)
[](https://github.com/dotkernel/dot-session/stargazers)
[](https://github.com/dotkernel/dot-session/blob/5.0/LICENSE.md)
[](https://github.com/dotkernel/dot-session/actions/workflows/continuous-integration.yml)
[](https://codecov.io/gh/dotkernel/dot-session)
[](https://github.com/dotkernel/dot-session/actions/workflows/static-analysis.yml)
## Installation
Run the following command in your project folder
```bash
composer require dotkernel/dot-session
```
## Configuration
Register `SessionMiddleware` in your application's pipeline by adding the following line to `config/pipeline.php`:
```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`:
```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
```php
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
```php
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.
```php
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
}
```