GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — develop ( c0787d...9e1273 )
by Gabriel
05:23
created

TranslatorServiceProvider   A

Complexity

Total Complexity 17

Size/Duplication

Total Lines 139
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Test Coverage

Coverage 71.15%

Importance

Changes 5
Bugs 1 Features 1
Metric Value
c 5
b 1
f 1
dl 0
loc 139
ccs 37
cts 52
cp 0.7115
rs 10
wmc 17
lcom 1
cbo 3

14 Methods

Rating   Name   Duplication   Size   Complexity  
A register() 0 6 1
A registerTranslator() 0 5 1
A registerLoader() 0 9 1
A registerLanguages() 0 6 1
A createFileBackend() 0 11 1
A provides() 0 4 1
A getLanguages() 0 7 2
A initLanguages() 0 4 1
A generateLanguages() 0 6 2
A setLanguages() 0 4 1
A getLanguageDirectory() 0 7 2
A setLanguageDirectory() 0 4 1
A initLanguageDirectory() 0 4 1
A generateLanguageDirectory() 0 4 1
1
<?php
2
3
namespace Nip\I18n;
4
5
use Nip\Container\ServiceProviders\Providers\AbstractSignatureServiceProvider;
6
use Nip\I18n\Translator\Backend\AbstractBackend;
7
use Nip\I18n\Translator\Backend\File;
8
9
/**
10
 * Class MailServiceProvider
11
 * @package Nip\Mail
12
 */
13
class TranslatorServiceProvider extends AbstractSignatureServiceProvider
14
{
15
16
    protected $languages = null;
17
18
    protected $languageDirectory = null;
19
20
    /**
21
     * @inheritdoc
22
     */
23 1
    public function register()
24
    {
25 1
        $this->registerTranslator();
26 1
        $this->registerLanguages();
27 1
        $this->registerLoader();
28 1
    }
29
30
    /**
31
     * Register the session manager instance.
32
     *
33
     * @return void
34
     */
35 1
    protected function registerTranslator()
36
    {
37 1
        $this->getContainer()->share('translator', Translator::class)
38 1
            ->withArgument(AbstractBackend::class);
39 1
    }
40
41
    /**
42
     * Register the translation line loader.
43
     *
44
     * @return void
45
     */
46
    protected function registerLoader()
47
    {
48 1
        $this->getContainer()->share('translation.loader', function () {
49 1
            $backend = $this->createFileBackend();
50 1
            return $backend;
51 1
        });
52
53 1
        $this->getContainer()->alias('translation.loader', AbstractBackend::class);
54 1
    }
55
56
    protected function registerLanguages()
57
    {
58 1
        $this->getContainer()->share('translation.languages', function () {
59 1
            return $this->getLanguages();
60 1
        });
61 1
    }
62
63
    /**
64
     * @return File
65
     */
66 1
    protected function createFileBackend()
67
    {
68
        /** @var File $backend */
69 1
        $backend = $this->getContainer()->get(File::class);
70 1
        $backend->setBaseDirectory($this->getLanguageDirectory());
71
72 1
        $languages = $this->getContainer()->get('translation.languages');
73 1
        $backend->addLanguages($languages);
74
75 1
        return $backend;
76
    }
77
78
    /**
79
     * @inheritdoc
80
     */
81
    public function provides()
82
    {
83
        return ['translator', 'translation.languages', 'translation.loader'];
84
    }
85
86
    /**
87
     * @return null
88
     */
89 1
    public function getLanguages()
90
    {
91 1
        if ($this->languages === null) {
92
            $this->initLanguages();
93
        }
94 1
        return $this->languages;
95
    }
96
97
    protected function initLanguages()
98
    {
99
        $this->setLanguages($this->generateLanguages());
100
    }
101
102
    /**
103
     * @return array
104
     */
105
    protected function generateLanguages()
106
    {
107
        $languages = config('app.locale.enabled');
108
109
        return is_array($languages) ? $languages : explode(',', $languages);
110
    }
111
112
    /**
113
     * @param null $languages
114
     */
115 1
    public function setLanguages($languages)
116
    {
117 1
        $this->languages = $languages;
118 1
    }
119
120
    /**
121
     * @return null
122
     */
123 1
    public function getLanguageDirectory()
124
    {
125 1
        if ($this->languageDirectory === null) {
126
            $this->initLanguageDirectory();
127
        }
128 1
        return $this->languageDirectory;
129
    }
130
131
    /**
132
     * @param null $languageDirectory
133
     */
134 1
    public function setLanguageDirectory($languageDirectory)
135
    {
136 1
        $this->languageDirectory = $languageDirectory;
137 1
    }
138
139
    protected function initLanguageDirectory()
140
    {
141
        $this->setLanguageDirectory($this->generateLanguageDirectory());
142
    }
143
144
    /**
145
     * @return string
146
     */
147
    protected function generateLanguageDirectory()
148
    {
149
        return app('path.lang');
150
    }
151
}
152