TranslatorBootstrapper   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 6

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 6
dl 0
loc 35
ccs 15
cts 15
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A run() 0 9 1
A registerBindings() 0 15 2
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace Foo\Translate\Bootstrapper;
6
7
use Foo\Translate\ITranslator;
8
use Foo\Translate\Loader;
9
use Foo\Translate\Translator;
10
use Opulence\Cache\ICacheBridge;
11
use Opulence\Framework\Configuration\Config;
12
use Opulence\Ioc\Bootstrappers\Bootstrapper;
13
use Opulence\Ioc\IContainer;
14
use Opulence\Views\Compilers\Fortune\ITranspiler;
15
16
class TranslatorBootstrapper extends Bootstrapper
17
{
18
    /**
19
     * @param ITranspiler $transpiler
20
     * @param Translator  $translator
21
     */
22 1
    public function run(ITranspiler $transpiler, Translator $translator)
23
    {
24 1
        $transpiler->registerViewFunction(
25 1
            'tr',
26 1
            function (string $key, ...$args) use ($translator) {
27
                return $translator->translateByArgs($key, $args);
28 1
            }
29
        );
30 1
    }
31
32
    /**
33
     * @param IContainer $container
34
     */
35 2
    public function registerBindings(IContainer $container)
36
    {
37 2
        $cacheBridge = null;
38 2
        if ($container->hasBinding(ICacheBridge::class)) {
39 1
            $cacheBridge = $container->resolve(ICacheBridge::class);
40
        }
41
42 2
        $dir = Config::get('paths', 'resources.lang');
43
44 2
        $loader = new Loader($dir, $cacheBridge);
45
46 2
        $translator = new Translator($loader);
47
48 2
        $container->bindInstance(ITranslator::class, $translator);
49
    }
50
}