Completed
Push — develop ( 3e6d4a...29065f )
by Siad
03:23
created

ToggleHelperFactory::createService()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 19
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 2.024

Importance

Changes 2
Bugs 0 Features 1
Metric Value
c 2
b 0
f 1
dl 0
loc 19
ccs 9
cts 11
cp 0.8182
rs 9.4285
cc 2
eloc 11
nc 2
nop 1
crap 2.024
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\View;
22
use Qandidate\Toggle\Context;
23
use Qandidate\Toggle\ToggleManager;
24
use Zend\ServiceManager\Exception\ServiceNotFoundException;
25
use Zend\ServiceManager\FactoryInterface;
26
use Zend\ServiceManager\ServiceLocatorInterface;
27
use Zend\View\HelperPluginManager;
28
29
class ToggleHelperFactory implements FactoryInterface
30
{
31
    /**
32
     * Create service
33
     *
34
     * @param ServiceLocatorInterface $serviceLocator
35
     *
36
     * @return View\Helper\FeatureToggle
37
     *
38
     * @throws ServiceNotFoundException
39
     */
40 1
    public function createService(ServiceLocatorInterface $serviceLocator)
41
    {
42 1
        if ($serviceLocator instanceof HelperPluginManager) {
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 View\Helper\FeatureToggle();
54 1
        $featureToggle->setToggleManager($toggleManager);
55 1
        $featureToggle->setContext($toggleContext);
56
57 1
        return $featureToggle;
58
    }
59
}
60