Completed
Push — develop ( e39832...84cd69 )
by Siad
03:20
created

TogglePluginFactory   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 81.82%

Importance

Changes 2
Bugs 1 Features 1
Metric Value
wmc 2
c 2
b 1
f 1
lcom 0
cbo 3
dl 0
loc 31
ccs 9
cts 11
cp 0.8182
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A createService() 0 19 2
1
<?php
2
/**
3
 * zf2-featureflags.
4
 *
5
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
6
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
8
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
9
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
10
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
11
 * SOFTWARE.
12
 *
13
 * @copyright 2016 MehrAlsNix (http://www.mehralsnix.de)
14
 * @license   http://www.opensource.org/licenses/mit-license.php MIT
15
 *
16
 * @link      http://github.com/MehrAlsNix/zf2-featureflags
17
 */
18
19
namespace MehrAlsNix\FeatureToggle\Factory;
20
21
use MehrAlsNix\FeatureToggle\Mvc;
22
use Qandidate\Toggle\Context;
23
use Qandidate\Toggle\ToggleManager;
24
use Zend\Mvc\Controller\PluginManager;
25
use Zend\ServiceManager\Exception\ServiceNotFoundException;
26
use Zend\ServiceManager\FactoryInterface;
27
use Zend\ServiceManager\ServiceLocatorInterface;
28
29
class TogglePluginFactory implements FactoryInterface
30
{
31
    /**
32
     * Create service
33
     *
34
     * @param ServiceLocatorInterface $serviceLocator
35
     *
36
     * @return Mvc\Controller\Plugin\FeatureToggle
37
     *
38
     * @throws ServiceNotFoundException
39
     */
40 1
    public function createService(ServiceLocatorInterface $serviceLocator)
41
    {
42 1
        if ($serviceLocator instanceof PluginManager) {
43
            $parentLocator = $serviceLocator->getServiceLocator();
44
        } else {
45 1
            $parentLocator = $serviceLocator;
46
        }
47
        /** @var ToggleManager $toggleManager */
48 1
        $toggleManager = $parentLocator->get('ToggleManagerFactory');
49
50
        /** @var Context $toggleContext */
51 1
        $toggleContext = $parentLocator->get('ToggleContextFactory');
52
53 1
        $featureToggle = new Mvc\Controller\Plugin\FeatureToggle();
54 1
        $featureToggle->setToggleManager($toggleManager);
55 1
        $featureToggle->setContext($toggleContext);
56
57 1
        return $featureToggle;
58
    }
59
}
60