MultisiteResolverManager::__construct()   B
last analyzed

Complexity

Conditions 5
Paths 2

Size

Total Lines 13
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 5
Bugs 1 Features 4
Metric Value
c 5
b 1
f 4
dl 0
loc 13
rs 8.8571
cc 5
eloc 7
nc 2
nop 3
1
<?php
2
namespace Gwa\Wordpress;
3
4
use Exception;
5
use Gwa\Wordpress\WpBridge\Traits\WpBridgeTrait;
6
use Gwa\Wordpress\WpBridge\WpBridge;
7
8
class MultisiteResolverManager
9
{
10
    use WpBridgeTrait;
11
12
    const TYPE_SUBDOMAIN = '\Gwa\Wordpress\MultisiteSubDomainResolver';
13
    const TYPE_FOLDER = '\Gwa\Wordpress\MultisiteDirectoryResolver';
14
15
    /**
16
     * Resolver Handler.
17
     *
18
     * @var \Gwa\Wordpress\Contracts\MultisiteDirectoryResolver
19
     */
20
    protected $handler;
21
22
    /**
23
     * MultisiteResolverManager.
24
     *
25
     * @param string $wpdir
26
     * @param string $multisiteDomainType
27
     * @param null   $wpBridge
28
     */
29
    public function __construct($wpdir, $multisiteDomainType, $wpBridge = null)
30
    {
31
        if (!is_string($wpdir) || $wpdir === '' || $wpdir === '/') {
32
            throw new Exception('Please set the relative path to your Wordpress install folder.');
33
        }
34
35
        $this->setWpBridge(($wpBridge !== null) ? $wpBridge : new WpBridge());
36
37
        $handler = new $multisiteDomainType($wpdir);
38
        $handler->setWpBridge($this->getWpBridge());
39
40
        $this->handler = $handler;
41
    }
42
43
    /**
44
     * Get current Handler.
45
     *
46
     * @return \Gwa\Wordpress\Contracts\MultisiteDirectoryResolver
47
     */
48
    public function getHandler()
49
    {
50
        return $this->handler;
51
    }
52
53
    /**
54
     * Init all filter.
55
     */
56
    public function init()
57
    {
58
        $this->handler->init();
59
    }
60
}
61