Handler   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 11 1
A catchSignal() 0 8 3
1
<?php
2
/**
3
 * Nyx
4
 *
5
 * (The MIT license)
6
 * Copyright (c) 2016 Luke Steadman
7
 *
8
 * Permission is hereby granted, free of charge, to any person obtaining a copy
9
 * of this software and associated * documentation files (the "Software"), to
10
 * deal in the Software without restriction, including without limitation the
11
 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
12
 * sell copies of the Software, and to permit persons to whom the Software is
13
 * furnished to do so, subject to the following conditions:
14
 * The above copyright notice and this permission notice shall be included in
15
 * all copies or substantial portions of the Software.
16
 *
17
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23
 * IN THE SOFTWARE.
24
 *
25
 * @package Nyx
26
 */
27
namespace Nyx;
28
29
final class Handler
30
{
31
    /**
32
     * @var Manager
33
     */
34
    private $manager;
35
36
    /**
37
     * @param Manager $manager
38
     */
39
    public function __construct(Manager $manager)
40
    {
41
        $this->manager = $manager;
42
43
        pcntl_signal(SIGINT, array($this, "catchSignal"));
44
        pcntl_signal(SIGTERM, array($this, "catchSignal"));
45
        pcntl_signal(SIGHUP, array($this, "catchSignal"));
46
        pcntl_signal(SIGUSR1, array($this, "catchSignal"));
47
48
        $this->manager->getOutput()->write('[*] Handler registered');
49
    }
50
51
    /**
52
     * @param $signal
53
     */
54
    public function catchSignal($signal)
55
    {
56
        switch ($signal) {
57
            case SIGINT:
58
            case SIGTERM:
59
                $this->manager->getOutput()->write('[-] Exiting.');
60
        }
61
    }
62
}
63