Completed
Push — master ( e09e40...2564b7 )
by Nils
02:09
created

CookieMakerExtension   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 2
dl 0
loc 39
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
B init() 0 24 4
A addSessions() 0 4 1
1
<?php
2
3
namespace whm\Smoke\Extensions\CookieMaker;
4
5
use whm\Smoke\Http\Session;
6
use whm\Smoke\Scanner\SessionContainer;
7
8
class CookieMakerExtension
9
{
10
    private $executable = 'CookieMaker.phar';
11
12
    private $sessionContainer;
13
14
    public function init(array $sessions, $executable = null)
15
    {
16
        if ($executable) {
17
            $this->executable = $executable;
18
        }
19
20
        $this->sessionContainer = new SessionContainer();
21
22
        foreach ($sessions as $sessionName => $session) {
23
            $command = $this->executable . " '" . json_encode($session) . "'";
24
25
            exec($command, $output, $return);
26
27
            $cookies = json_decode($output[0]);
28
29
            $session = new Session();
30
31
            foreach ($cookies as $key => $value) {
32
                $session->addCookie($key, $value);
33
            }
34
35
            $this->sessionContainer->addSession($sessionName, $session);
36
        }
37
    }
38
39
    /**
40
     * @Event("ResponseRetriever.setSessionContainer.before")
41
     */
42
    public function addSessions(SessionContainer $sessionContainer)
43
    {
44
        $sessionContainer->addContainer($this->sessionContainer);
45
    }
46
}
47