Handler   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 3
c 2
b 0
f 0
lcom 0
cbo 2
dl 0
loc 40
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 11 1
A getDriver() 0 4 1
A setDriver() 0 4 1
1
<?php
2
3
namespace Vinelab\UrlShortener\Base;
4
5
/**
6
 * Class Handler is the abstract class for all the API's of the package.
7
 * Every API (accessible by users) must extend from this Handler.
8
 *
9
 * @category API Abstract
10
 *
11
 * @author   Mahmoud Zalt <[email protected]>
12
 */
13
abstract class Handler
14
{
15
    /**
16
     * Instance of the default driver.
17
     *
18
     * @var \Vinelab\UrlShortener\Contracts\DriverInterface
19
     */
20
    protected $driver;
21
22
    /**
23
     * @param \Vinelab\UrlShortener\Base\PackageManager $manager
24
     */
25
    public function __construct(PackageManager $manager)
26
    {
27
        // initialize driver instance (based on the configuration input collected from the package manager)
28
        $driver = DriversFactory::make(
29
            $manager->getDriverName(),
30
            $manager->getDriverParameters(),
31
            $manager->getHttpClient()
32
        );
33
34
        $this->setDriver($driver);
35
    }
36
37
    /**
38
     * @return \Vinelab\UrlShortener\Contracts\DriverInterface
39
     */
40
    public function getDriver()
41
    {
42
        return $this->driver;
43
    }
44
45
    /**
46
     * @param \Vinelab\UrlShortener\Contracts\DriverInterface $driver
47
     */
48
    public function setDriver($driver)
49
    {
50
        $this->driver = $driver;
51
    }
52
}
53