ListenerBuilder::getService()
last analyzed

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1
c 0
b 0
f 0
nc 1
1
<?php
2
3
namespace Mdb\PayPal\Ipn;
4
5
use Symfony\Component\EventDispatcher\EventDispatcher;
6
7
abstract class ListenerBuilder
8
{
9
    public function build() : Listener
10
    {
11
        $verifier = $this->getVerifier();
12
        $messageFactory = $this->getMessageFactory();
13
        $eventDispatcher = $this->getEventDispatcher();
14
15
        return new Listener(
16
            $messageFactory,
17
            $verifier,
18
            $eventDispatcher
19
        );
20
    }
21
22
    private function getVerifier() : Verifier
23
    {
24
        $service = $this->getService();
25
26
        return new Verifier($service);
27
    }
28
29
    private function getEventDispatcher() : EventDispatcher
30
    {
31
        return new EventDispatcher();
32
    }
33
34
    abstract protected function getMessageFactory() : MessageFactory;
35
36
    abstract protected function getService() : Service;
37
}
38