Module::setLanguageProvider()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
/**
3
 * @link https://github.com/yiimaker/yii2-banner
4
 * @copyright Copyright (c) 2017 Yii Maker
5
 * @license BSD 3-Clause License
6
 */
7
8
namespace ymaker\banner\backend;
9
10
use Yii;
11
use yii\base\InvalidConfigException;
12
use motion\i18n\LanguageProviderInterface;
13
use ymaker\banner\backend\services\BannerService;
14
use ymaker\banner\backend\services\BannerServiceInterface;
15
use ymaker\banner\common\components\FileManager;
16
use ymaker\banner\common\components\FileManagerInterface;
17
18
/**
19
 * Backend banner module definition class.
20
 *
21
 * @property-write array $languageProvider
22
 * @property-write array $service
23
 *
24
 * @author Vladimir Kuprienko <[email protected]>
25
 * @since 1.0
26
 */
27
class Module extends \yii\base\Module
28
{
29
    /**
30
     * @inheritdoc
31
     */
32
    public $controllerNamespace = 'ymaker\banner\backend\controllers';
33
34
    /**
35
     * @var array
36
     */
37
    private $_languageProvider;
38
    /**
39
     * @var array
40
     */
41
    private $_service;
42
43
44
    /**
45
     * @param array $providerConfig
46
     */
47
    public function setLanguageProvider(array $providerConfig)
48
    {
49
        $this->_languageProvider = $providerConfig;
50
    }
51
52
    /**
53
     * @param array $service
54
     */
55
    public function setService($service)
56
    {
57
        $this->_service = $service;
58
    }
59
60
    /**
61
     * @inheritdoc
62
     */
63
    public function init()
64
    {
65
        if (empty($this->_languageProvider)) {
66
            throw new InvalidConfigException('You should configure language provider');
67
        }
68
        if (empty($this->_service)) {
69
            $this->_service = ['class' => BannerService::class];
70
        }
71
72
        $this->registerDependencies();
73
    }
74
75
    /**
76
     * Register dependencies in container.
77
     */
78
    protected function registerDependencies()
79
    {
80
        Yii::$container->setDefinitions([
81
            LanguageProviderInterface::class => $this->_languageProvider,
82
            BannerServiceInterface::class => $this->_service,
83
        ]);
84
    }
85
86
    /**
87
     * Wrapper for `Yii::t()`.
88
     *
89
     * @param string $message
90
     * @param array $params
91
     * @param null|string $language
92
     * @return string
93
     */
94
    public static function t($message, $params = [], $language = null)
95
    {
96
        return Yii::t('back/banner', $message, $params, $language);
97
    }
98
}
99