Completed
Push — master ( 68250e...501a81 )
by Muhammad Kashif
23:17
created

ConfigFileServiceFactory::resolveArguments()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 2

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 10
ccs 6
cts 6
cp 1
rs 9.4285
cc 2
eloc 5
nc 2
nop 2
crap 2
1
<?php
2
3
namespace Gr8abbasi\Container\Factory;
4
5
use Gr8abbasi\Container\Container;
6
use Gr8abbasi\Container\Factory\ServiceFactoryInterface;
7
8
/**
9
 * ConfigFileServiceFactory
10
 */
11
class ConfigFileServiceFactory implements ServiceFactoryInterface
12
{
13
    /**
14
     * Resolve the service arguments
15
     *
16
     * @param array $serviceArguments
17
     * @param Container $container
18
     *
19
     * @return mixed $service
20
     */
21 2
    private function resolveArguments($serviceArguments, Container $container)
22
    {
23 2
        $arguments = [];
24
25 2
        foreach ($serviceArguments as $argument) {
26 2
            $arguments[] = $container->get($argument);
27 2
        }
28
29 2
        return $arguments;
30
    }
31
32
    /**
33
     * @inheritdoc
34
     */
35 2
    public function create($service, Container $container)
36
    {
37 2
        $class = new \ReflectionClass($service['class']);
38
39 2
        $arguments = isset($service['arguments'])? $service['arguments'] : [] ;
40
41 2
        return $class->newInstanceArgs(
42 2
            $this->resolveArguments(
43 2
                $arguments,
44
                $container
45 2
            )
46 2
        );
47
    }
48
}
49