BaseTask::serviceManager()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 3
cts 3
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 1
crap 1
1
<?php
2
/**
3
 * This file is part of RoboSystemService.
4
 *
5
 * @author      Aitor García Martínez (Falc) <[email protected]>
6
 * @copyright   2015 Aitor García Martínez (Falc) <[email protected]>
7
 * @license     MIT
8
 */
9
10
namespace Falc\Robo\Service;
11
12
use Falc\Robo\Service\Factory\CommandBuilderFactory;
13
use Falc\Robo\Service\Factory\CommandBuilderFactoryInterface;
14
use Robo\Common\ExecOneCommand;
15
use Robo\Task\BaseTask as RoboBaseTask;
16
17
/**
18
 * Base class for all service tasks.
19
 */
20
abstract class BaseTask extends RoboBaseTask
21
{
22
    use ExecOneCommand;
23
24
    /**
25
     * Service.
26
     *
27
     * @var string
28
     */
29
    protected $service;
30
31
    /**
32
     * Whether verbose mode is enabled or not.
33
     *
34
     * @var boolean
35
     */
36
    protected $verbose = false;
37
38
    /**
39
     * CommandBuilder factory.
40
     *
41
     * @var CommandBuilderFactoryInterface
42
     */
43
    protected $factory;
44
45
    /**
46
     * CommandBuilder.
47
     *
48
     * @var \Falc\Robo\Service\CommandBuilder\CommandBuilderInterface
49
     */
50
    protected $builder;
51
52
    /**
53
     * Constructor.
54
     *
55
     * @param   string                          $serviceManager Service manager to use. Optional.
56
     * @param   string                          $service        Service. Optional.
57
     * @param   CommandBuilderFactoryInterface  $factory        CommandBuilder factory. Optional.
58
     */
59 48
    public function __construct($serviceManager = null, $service = null, CommandBuilderFactoryInterface $factory = null)
60
    {
61 48
        $this->factory = $factory ?: new CommandBuilderFactory();
62
63 48
        if ($serviceManager !== null) {
64 7
            $this->serviceManager($serviceManager);
65 7
        }
66
67 48
        if (!empty($service)) {
68 9
            $this->service($service);
69 9
        }
70 48
    }
71
72
    /**
73
     * Sets the service manager to use.
74
     *
75
     * @param   string  $serviceManager Service manager to use.
76
     * @return  BaseTask
77
     */
78 41
    public function serviceManager($serviceManager)
79
    {
80 41
        $this->builder = $this->factory->create(strtolower($serviceManager));
81
82 41
        return $this;
83
    }
84
85
    /**
86
     * Sets the service.
87
     *
88
     * @param   string  $service    Service.
89
     * @return  BaseTask
90
     */
91 21
    public function service($service)
92
    {
93 21
        $this->service = trim($service);
94
95 21
        return $this;
96
    }
97
98
    /**
99
     * Enables the verbose mode.
100
     *
101
     * @return BaseTask
102
     */
103 7
    public function verbose()
104
    {
105 7
        $this->verbose = true;
106
107 7
        return $this;
108
    }
109
}
110