Lines
0.00%
0 / 11
Methods
0.00%
0 / 3
Classes
0.00%
0 / 1
| Name | Lines | Methods | CRAP | ||||
|---|---|---|---|---|---|---|---|
| __construct | 0.00% | 0 / 3 | 0.00% | 0 / 1 | 2 | ||
| __invoke | 0.00% | 0 / 5 | 0.00% | 0 / 1 | 2 | ||
| getSessionContainer | 0.00% | 0 / 3 | 0.00% | 0 / 1 | 2 | ||
| 9 | class SessionMiddleware | |
| 10 | { | |
| 11 | const string SESSION_ATTRIBUTE = 'session'; | |
| 12 | ||
| 13 | protected string $sessionName; | |
| 14 | ||
| 15 | protected ?object $sessionClass = null; | |
| 16 | ||
| 17 | /** @psalm-api Instantiated by Slim middleware registration. */ | |
| 18 | public function __construct(string $name = 'default', ?object $sessionClass = null) | |
| 19 | { | |
| 20 | session_name($name); | |
| 21 | $this->sessionName = $name; | |
| 22 | $this->sessionClass = $sessionClass; | |
| 23 | } | |
| 24 | ||
| 25 | public function __invoke( | |
| 26 | ServerRequestInterface $requestInterface, | |
| 27 | RequestHandlerInterface $next | |
| 28 | ): ResponseInterface { | |
| 29 | $sessionContainer = Session\SessionHuman::fromContainer(function () use ($requestInterface) { | |
| 30 | return $this->getSessionContainer($requestInterface); | |
| 31 | }); | |
| 32 | ||
| 33 | $requestInterface = $requestInterface->withAttribute(self::SESSION_ATTRIBUTE, $sessionContainer); | |
| 34 | return $next->handle($requestInterface); | |
| 35 | } | |
| 36 | ||
| 37 | public function getSessionContainer(ServerRequestInterface $request): Session\SessionData | |
| 38 | { | |
| 39 | $session = Session\SessionData::getSession($request); | |
| 40 | $session->setEntityClass($this->sessionClass); | |
| 41 | return $session; | |
| 42 | } | |
| 43 | } |