PimpleServiceProvider   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 74
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 4
dl 0
loc 74
ccs 22
cts 22
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 3
A register() 0 36 1
1
<?php
2
namespace Germania\YamlServices;
3
4
use Pimple\Container;
5
use Pimple\ServiceProviderInterface;
6
7
use Psr\Log\LoggerInterface;
8
use Psr\Log\NullLogger;
9
10
use Symfony\Component\Finder\Finder;
11
12
class PimpleServiceProvider implements ServiceProviderInterface
13
{
14
15
    /**
16
     * @var integer
17
     */
18
    public $yaml_flags = 0;
19
20
21
    /**
22
     * @var Finder
23
     */
24
    public $finder;
25
26
27
    /**
28
     * @var LoggerInterface
29
     */
30
    public $logger;
31
32
33
    /**
34
     * @param integer $yaml_flags  YAML Parser flags. Defaults to 0.
35
     * @param Finder $finder       Optional Symfony Finder instance
36
     * @param Finder $finder       Optional PSR3 Logger
37
     */
38 45
    public function __construct( $yaml_flags = 0, Finder $finder = null, LoggerInterface $logger = null)
39
    {
40 45
        $this->yaml_flags = $yaml_flags;
41 45
        $this->finder = $finder ?: new Finder;
42 45
        $this->logger = $logger ?: new NullLogger;
43 45
    }
44
45
46
    /**
47
     * @implements ServiceProviderInterface
48
     */
49 36
    public function register(Container $dic)
50
    {
51
52
53 5
        $dic['Yaml.Flags'] = function() {
54 25
            return $this->yaml_flags;
55
        };
56
57
58 5
        $dic['Yaml.Finder'] = function() {
59 25
            return $this->finder;
60
        };
61
62
63 5
        $dic['Yaml.Logger'] = function() {
64 25
            return $this->logger;
65
        };
66
67
68 3
        $dic['Yaml.Parser'] = function($dic) {
69 15
            $flags = $dic['Yaml.Flags'];
70 15
            $logger = $dic['Yaml.Logger'];
71 15
            return new YamlParserCallable( $flags, $logger );
72
        };
73
74
75 6
        $dic['Yaml.FileParser'] = function( $dic ) {
76 15
            $finder = $dic['Yaml.Finder'];
77 15
            $flags  = $dic['Yaml.Flags'];
78 15
            $logger = $dic['Yaml.Logger'];
79 15
            return new YamlFileParserCallable( $finder, $flags, $logger );
80
        };
81
82
83
84 45
    }
85
}
86