PimpleServiceProvider   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 82
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 4
dl 0
loc 82
ccs 19
cts 19
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 3
A register() 0 42 1
1
<?php
2
namespace Germania\AuraSessionMiddleware;
3
4
use Pimple\Container;
5
use Pimple\ServiceProviderInterface;
6
7
use Aura\Session\SessionFactory;
8
9
use Psr\Log\NullLogger;
10
use Psr\Log\LoggerInterface;
11
12
class PimpleServiceProvider implements ServiceProviderInterface
13
{
14
15
    /**
16
     * @var string
17
     */
18
    public $session_name;
19
20
21
    /**
22
     * @var string
23
     */
24
    public $request_attribute_name;
25
26
27
    /**
28
     * @var LoggerInterface
29
     */
30
    public $logger;
31
32
33
34
    /**
35
     * @param string $session_name            The Session (segment) name
36
     * @param string $request_attribute_name  PSR7 Request attribute name, defaults to "session"
37
     * @param LoggerInterface $logger         Optional: PSR3 Logger instance
38
     */
39 6
    public function __construct( $session_name = null, $request_attribute_name = "session", LoggerInterface $logger = null )
40
    {
41 6
        $this->session_name = $session_name ?: get_class($this);
42 6
        $this->request_attribute_name = $request_attribute_name;
43 6
        $this->logger = $logger ?: new NullLogger;
44 6
    }
45
46
47
    /**
48
     * @param  Container $dic Pimple Container
49
     * @implements ServiceProviderInterface
50
     */
51 6
    public function register(Container $dic)
52
    {
53
54
        $dic['Session.Name'] = function( $dic ) {
0 ignored issues
show
Unused Code introduced by
The parameter $dic is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
55 6
            return $this->session_name;
56
        };
57
58
59
        /**
60
         * @return Aura SessionSegment
61
         */
62
        $dic['Session'] = function( $dic ) {
63 6
            $session_factory = new SessionFactory;
64 6
            $session = $session_factory->newInstance( $_COOKIE );
65 6
            $session_name = $dic['Session.Name'];
66 6
            return $session->getSegment( $session_name );
67
        };
68
69
70
71
        /**
72
         * @return  \Psr\Log\LoggerInterface
73
         */
74
        $dic['Session.Logger'] = function( $dic ) {
0 ignored issues
show
Unused Code introduced by
The parameter $dic is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
75 6
            return $this->logger;
76
        };
77
78
79
80
        /**
81
         * @return Callable|AuraSessionSegmentMiddleware
82
         */
83 6
        $dic['Session.Middleware'] = function( $dic ) {
84 6
            $session = $dic['Session'];
85 6
            $logger  = $dic['Session.Logger'];
86
87 6
            $middleware = new AuraSessionSegmentMiddleware( $session, $logger );
88 6
            $middleware->setRequestAttributeName( $this->request_attribute_name );
89 6
            return $middleware;
90
        };
91
92 6
    }
93
}
94
95