Passed
Push — main ( dae7cc...12f243 )
by Breno
01:47
created

DefaultMethodMapper::__construct()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 5
dl 0
loc 10
rs 10
c 1
b 0
f 0
cc 3
nc 3
nop 2
1
<?php
2
declare(strict_types=1);
3
4
namespace OniBus\Handler\ClassMethod\Mapper;
5
6
use OniBus\Handler\ClassMethod\ClassMethod;
7
use OniBus\Handler\ClassMethod\ClassMethodMapper;
8
9
class DefaultMethodMapper extends DirectMapper implements ClassMethodMapper
10
{
11
    /**
12
     * @param array $map ['message' => 'class', ...]
13
     * @param string $method default method
14
     */
15
    public function __construct(array $map, string $method = "__invoke")
16
    {
17
        $mapped = [];
18
        foreach ($map as $message => $class) {
19
            if (method_exists($class, $method)) {
20
                $mapped[] = new ClassMethod($message, $class, $method);
21
            }
22
        }
23
24
        parent::__construct(...$mapped);
25
    }
26
}
27