Completed
Pull Request — master (#7)
by Thomas Mauro
05:04
created

Client::setErrorHandler()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 0
cts 3
cp 0
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 1
crap 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Facile\SentryModule\Service;
6
7
use Facile\SentryModule\Listener\ErrorHandlerListener;
8
use Raven_Client;
9
use Raven_ErrorHandler;
10
use Facile\SentryModule\Options\ClientOptions;
11
use Zend\EventManager\ListenerAggregateInterface;
12
13
/**
14
 * Class Client.
15
 */
16
final class Client implements ClientInterface
17
{
18
    /**
19
     * @var Raven_Client
20
     */
21
    protected $raven;
22
    /**
23
     * @var null|Raven_ErrorHandler
24
     */
25
    protected $errorHandler;
26
    /**
27
     * @var ListenerAggregateInterface
28
     */
29
    protected $errorHandlerListener;
30
    /**
31
     * @var ClientOptions
32
     */
33
    protected $options;
34
35
    /**
36
     * Client constructor.
37
     *
38
     * @param Raven_Client       $raven
39
     * @param ClientOptions      $options
40
     * @param Raven_ErrorHandler|null $errorHandler
41
     * @param ErrorHandlerListener|null $errorHandlerListener
42
     */
43 4
    public function __construct(
44
        Raven_Client $raven,
45
        ClientOptions $options,
46
        Raven_ErrorHandler $errorHandler = null,
47
        ErrorHandlerListener $errorHandlerListener = null
48
    ) {
49 4
        $this->raven = $raven;
50 4
        $this->options = $options;
51 4
        $this->errorHandler = $errorHandler ?: new Raven_ErrorHandler($raven);
52 4
        $this->errorHandlerListener = $errorHandlerListener ?: new ErrorHandlerListener($this);
53 4
    }
54
55
    /**
56
     * Get the Raven client.
57
     *
58
     * @return Raven_Client
59
     */
60 4
    public function getRaven(): Raven_Client
61
    {
62 4
        return $this->raven;
63
    }
64
65
    /**
66
     * Get the Raven error handler.
67
     *
68
     * @return Raven_ErrorHandler
69
     */
70 3
    public function getErrorHandler(): Raven_ErrorHandler
71
    {
72 3
        return $this->errorHandler;
73
    }
74
75
    /**
76
     * Get the client options.
77
     *
78
     * @return ClientOptions
79
     */
80 3
    public function getOptions(): ClientOptions
81
    {
82 3
        return $this->options;
83
    }
84
85
    /**
86
     * Get the error handler listener.
87
     *
88
     * @return ListenerAggregateInterface
89
     */
90 3
    public function getErrorHandlerListener(): ListenerAggregateInterface
91
    {
92 3
        return $this->errorHandlerListener;
93
    }
94
95
    /**
96
     * Set the error handler listener.
97
     *
98
     * @param ListenerAggregateInterface $errorHandlerListener
99
     */
100 3
    public function setErrorHandlerListener(ListenerAggregateInterface $errorHandlerListener)
101
    {
102 3
        $this->errorHandlerListener = $errorHandlerListener;
103 3
    }
104
}
105