TranslatorBootstrapper::run()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 9
ccs 6
cts 6
cp 1
rs 9.6666
c 0
b 0
f 0
cc 1
eloc 5
nc 1
nop 2
crap 1
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
}