IdGeneratorExample::generate()   A
last analyzed

Complexity

Conditions 3
Paths 2

Size

Total Lines 36
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 7
c 1
b 0
f 0
dl 0
loc 36
ccs 0
cts 8
cp 0
rs 10
cc 3
nc 2
nop 1
crap 12
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