IdGeneratorExample   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 3
eloc 8
c 1
b 0
f 0
dl 0
loc 38
ccs 0
cts 8
cp 0
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A generate() 0 36 3
1
<?php
2
declare(strict_types=1);
3
4
namespace Ctw\Middleware\PageCacheMiddleware\IdGenerator\IdGeneratorExample;
5
6
use Ctw\Middleware\PageCacheMiddleware\IdGenerator\IdGeneratorInterface;
7
use Mezzio\Session\SessionInterface;
8
use Mezzio\Session\SessionMiddleware;
9
use Psr\Http\Message\ServerRequestInterface;
10
11
class IdGeneratorExample extends AbstractIdGenerator implements IdGeneratorInterface
12
{
13
    public function generate(ServerRequestInterface $request): string
14
    {
15
        /*
16
        // Available methods
17
        $request->getAttribute();
18
        $request->getAttributes();
19
        $request->getBody();
20
        $request->getCookieParams();
21
        $request->getHeader();
22
        $request->getHeaderLine();
23
        $request->getHeaders();
24
        $request->getMethod();
25
        $request->getParsedBody();
26
        $request->getProtocolVersion();
27
        $request->getQueryParams();
28
        $request->getRequestTarget();
29
        $request->getServerParams();
30
        $request->getUploadedFiles();
31
        $request->getUri();
32
        */
33
34
        $vars = [];
35
36
        // Access URI
37
        $vars[] = $request->getUri();
38
39
        // Access Attributes
40
        $vars[] = $request->getAttribute('attribute_key');
41
42
        // Access Session
43
        $session = $request->getAttribute(SessionMiddleware::SESSION_ATTRIBUTE);
44
        if ($session instanceof SessionInterface && $session->has('session_key')) {
45
            $vars[] = $session->get('session_key');
46
        }
47
48
        return $this->getHash($vars);
49
    }
50
}
51