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

generateLanguageDirectory()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 1 Features 0
Metric Value
cc 1
eloc 2
c 1
b 1
f 0
nc 1
nop 0
dl 0
loc 4
ccs 0
cts 2
cp 0
crap 2
rs 10
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