Passed
Push — master ( d0b9e7...83a10b )
by Zing
04:45
created

ConnectionFactory   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 7
c 0
b 0
f 0
dl 0
loc 20
ccs 7
cts 7
cp 1
rs 10
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A make() 0 11 4
1
<?php
2
3
namespace Zing\LaravelSms\Connectors;
4
5
use Zing\LaravelSms\Contracts\Driver;
6
use Zing\LaravelSms\Exceptions\InvalidArgumentException;
7
8
class ConnectionFactory
9
{
10
    /**
11
     * @param array $config
12
     *
13
     * @return \Zing\LaravelSms\Contracts\Driver
14
     *
15
     * @throws \Zing\LaravelSms\Exceptions\InvalidArgumentException
16
     */
17 17
    public function make(array $config)
18
    {
19 17
        if (! isset($config['driver'])) {
20 1
            throw new InvalidArgumentException('A driver must be specified.');
21
        }
22 16
        $driver = $config['driver'];
23 16
        if (class_exists($driver) && in_array(Driver::class, class_implements($driver), true)) {
24 15
            return new $driver($config);
25
        }
26
27 1
        throw new InvalidArgumentException("Unsupported driver [{$config['driver']}].");
28
    }
29
}
30