Completed
Push — master ( fce883...b7eaea )
by Westin
03:16
created

HandlerMapper   A

Complexity

Total Complexity 31

Size/Duplication

Total Lines 78
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 98.41%

Importance

Changes 0
Metric Value
wmc 31
lcom 0
cbo 0
dl 0
loc 78
ccs 62
cts 63
cp 0.9841
rs 9.8
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
C map() 0 69 31
1
<?php
2
declare(strict_types=1);
3
4
namespace WShafer\PSR11MonoLog\Handler;
5
6
use WShafer\PSR11MonoLog\MapperInterface;
7
8
/**
9
 * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
10
 */
11
class HandlerMapper implements MapperInterface
12
{
13
    /**
14
     * @param string $type
15
     * @return null|string
16
     *
17
     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
18
     */
19 30
    public function map(string $type)
20
    {
21 30
        $type = strtolower($type);
22
23
        switch ($type) {
24 30
            case 'stream':
25 1
                return StreamHandlerFactory::class;
26 29
            case 'rotating':
27 1
                return RotatingFileHandlerFactory::class;
28 28
            case 'syslog':
29 1
                return SyslogHandlerFactory::class;
30 27
            case 'errorlog':
31 1
                return ErrorLogHandlerFactory::class;
32 26
            case 'nativemailer':
33 1
                return NativeMailerHandlerFactory::class;
34 25
            case 'swiftmailer':
35 1
                return SwiftMailerHandlerFactory::class;
36 24
            case 'pushover':
37 1
                return PushoverHandlerFactory::class;
38 23
            case 'hipchat':
39 1
                return HipChatHandlerFactory::class;
40 22
            case 'flowdock':
41 1
                return FlowdockHandlerFactory::class;
42 21
            case 'slackbot':
43 1
                return SlackbotHandlerFactory::class;
44 20
            case 'slackwebhook':
45 1
                return SlackWebhookHandlerFactory::class;
46 19
            case 'slack':
47 1
                return SlackHandlerFactory::class;
48 18
            case 'mandrill':
49 1
                return MandrillHandlerFactory::class;
50 17
            case 'fleephook':
51 1
                return FleepHookHandlerFactory::class;
52 16
            case 'ifttt':
53 1
                return IFTTTHandlerFactory::class;
54 15
            case 'socket':
55 1
                return SocketHandlerFactory::class;
56 14
            case 'amqp':
57 1
                return AmqpHandlerFactory::class;
58 13
            case 'gelf':
59 1
                return GelfHandlerFactory::class;
60 12
            case 'cube':
61 1
                return CubeHandlerFactory::class;
62 11
            case 'raven':
63 1
                return RavenHandlerFactory::class;
64 10
            case 'zend':
65 1
                return ZendMonitorHandlerFactory::class;
66 9
            case 'newrelic':
67 1
                return NewRelicHandlerFactory::class;
68 8
            case 'loggly':
69 1
                return LogglyHandlerFactory::class;
70 7
            case 'syslogudp':
71 1
                return SyslogUdpHandlerFactory::class;
72 6
            case 'logentries':
73 1
                return LogEntriesHandlerFactory::class;
74 5
            case 'firephp':
75 1
                return FirePHPHandlerFactory::class;
76 4
            case 'chromephp':
77 1
                return ChromePHPHandlerFactory::class;
78 3
            case 'browserconsole':
79 1
                return BrowserConsoleHandlerFactory::class;
80 2
            case 'phpconsole':
81 1
                return PHPConsoleHandlerFactory::class;
82 1
            case 'redis':
83
                return RedisHandlerFactory::class;
84
        }
85
86 1
        return null;
87
    }
88
}
89