Completed
Push — master ( b87073...878ab0 )
by Dmitry
02:24
created

Asset::addInlineJs()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
namespace Dmitrynaum\SAM;
4
5
use Dmitrynaum\SAM\Component\Manifest;
6
7
/**
8
 * Класс-фасад для удобной работы с AssetManager`ом
9
 *
10
 * @author Naumov Dmitry <[email protected]>
11
 */
12
class Asset
13
{
14
15
    /**
16
     * Путь до manifest файла
17
     * @var string
18
     */
19
    public static $manifestFilePath = 'sam.json';
20
   
21
    /**
22
     * Объект менеджера ассетов
23
     * @var AssetManager
24
     */
25
    protected static $assetManager;
26
    
27
    /**
28
     * Включить режим разработки
29
     */
30
    public static function enableDevelopmentMode()
31
    {
32
        static::assetManager()->enableDevelopmentMode();
33
    }
34
    
35
    /**
36
     * Выключить режим разработки
37
     */
38
    public static function disableDevelopmentMode()
39
    {
40
        static::assetManager()->disableDevelopmentMode();
41
    }
42
    
43
    /**
44
     * Включен ли режим разработки
45
     * @return bool
46
     */
47
    public static function isDevelopmentModeEnabled()
48
    {
49
        return static::assetManager()->isDevelopmentModeEnabled();
50
    }
51
52
    /**
53
     * Использовать JavaScript Asset
54
     * @param string $assetName - имя ассета
55
     */
56
    public static function useJs($assetName)
57
    {
58
        static::assetManager()->useJs($assetName);
59
    }
60
61
    /**
62
     * Использовать CSS Asset
63
     * @param string $assetName - имя ассета
64
     */
65
    public static function useCss($assetName)
66
    {
67
        static::assetManager()->useCss($assetName);
68
    }
69
    
70
    /**
71
     * Использовать удаленный js.
72
     * Ссылка просто оборачивается в тег script
73
     * @param string $jsUrl Ссылка на js файл
74
     */
75
    public static function useRemoteJs($jsUrl)
76
    {
77
        static::assetManager()->useRemoteJs($jsUrl);
78
    }
79
80
    /**
81
     * Использовать удаленный css.
82
     * Ссылка просто оборачивается в тег link
83
     * @param string $cssUrl Ссылка на css файл
84
     */
85
    public static function useRemoteCss($cssUrl)
86
    {
87
        static::assetManager()->useRemoteCss($cssUrl);
88
    }
89
    
90
    /**
91
     * Добавить inline Css код
92
     * @param string $js
0 ignored issues
show
Bug introduced by
There is no parameter named $js. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
93
     */
94
    public static function addInlineCss($css)
95
    {
96
        static::assetManager()->addInlineCss($css);
97
    }
98
    
99
    /**
100
     * Добавить inline JavaScript код
101
     * @param string $js
102
     */
103
    public static function addInlineJs($js)
104
    {
105
        static::assetManager()->addInlineJs($js);
106
    }
107
108
    /**
109
     * Получить html теги script используемых JavaScript asset`ов
110
     * @param array $attributes Массив атрибутов тега
111
     * ['Имя атрибута' => 'значение']
112
     * ['type' => 'text/javascript']
113
     * ['атрибут']
114
     * ['async', 'defer']
115
     * @return string
116
     */
117
    public static function renderJs(array $attributes = [])
118
    {
119
        return static::assetManager()->renderJs($attributes);
120
    }
121
    
122
    /**
123
     * Получить html теги link с используемыми CSS asset`ами
124
     * @return string
125
     */
126
    public static function renderCss()
127
    {
128
        return static::assetManager()->renderCss();
129
    }
130
    
131
    /**
132
     * Получить теги style с inline css или пустую строку если их нет
133
     * @return string
134
     */
135
    public static function renderInlineCss()
136
    {
137
        return static::assetManager()->renderInlineCss();
138
    }
139
    
140
    /**
141
     * Получить теги script с inline js или пустую строку если их нет
142
     * @return string
143
     */
144
    public static function renderInlineJs()
145
    {
146
        return static::assetManager()->renderInlineJs();
147
    }
148
    
149
    /**
150
     * Получить AssetManager
151
     * @return AssetManager
152
     */
153
    protected static function assetManager()
154
    {
155
        if (!static::$assetManager) {
156
            $manifest              = new Manifest(static::$manifestFilePath);
157
            static::$assetManager  = new AssetManager($manifest->resultMap());
158
        }
159
        
160
        return static::$assetManager;
161
    }
162
}
163