DataCollectorPlugin   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 62
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 4
dl 0
loc 62
ccs 22
cts 22
cp 1
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A onClientRequest() 0 4 1
A onClientResponse() 0 4 1
A onClientFault() 0 15 1
A getSubscribedEvents() 0 8 1
1
<?php
2
3
namespace Freshcells\SoapClientBundle\Plugin;
4
5
use Freshcells\SoapClientBundle\DataCollector\SoapCallRegistry;
6
use Freshcells\SoapClientBundle\Event\Events;
7
use Freshcells\SoapClientBundle\Event\FaultEvent;
8
use Freshcells\SoapClientBundle\Event\RequestEvent;
9
use Freshcells\SoapClientBundle\Event\ResponseEvent;
10
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
11
12
class DataCollectorPlugin implements EventSubscriberInterface
13
{
14
    /**
15
     * @var SoapCallRegistry
16
     */
17
    private $registry;
18
19
    /**
20
     * @param SoapCallRegistry $registry
21
     */
22 12
    public function __construct(SoapCallRegistry $registry)
23
    {
24 12
        $this->registry = $registry;
25 12
    }
26
27
    /**
28
     * @param RequestEvent $event
29
     */
30 6
    public function onClientRequest(RequestEvent $event)
31
    {
32 6
        $this->registry->addRequest($event);
33 6
    }
34
35
    /**
36
     * @param ResponseEvent $event
37
     */
38 6
    public function onClientResponse(ResponseEvent $event)
39
    {
40 6
        $this->registry->addResponse($event);
41 6
    }
42
43
    /**
44
     * @param FaultEvent $event
45
     */
46 6
    public function onClientFault(FaultEvent $event)
47
    {
48 6
        $this->registry->addRequest($event->getRequestEvent());
49
        //todo use a dedicated fault rendering in profiler
50 6
        $this->registry->addResponse(
51 6
            new ResponseEvent(
52 6
                $event->getId(),
53 6
                $event->getRequestEvent()->getResource(),
54 6
                $event->getRequestEvent()->getRequest(),
55 6
                null,
56 6
                $event->getException()->getMessage(),
57 6
                null
58
            )
59
        );
60 6
    }
61
62
    /**
63
     * {@inheritdoc}
64
     */
65 3
    public static function getSubscribedEvents()
66
    {
67
        return [
68 3
            Events::REQUEST  => 'onClientRequest',
69
            Events::RESPONSE => 'onClientResponse',
70
            Events::FAULT    => 'onClientFault'
71
        ];
72
    }
73
}
74