Passed
Push — develop ( 164850...0d721c )
by Andrew
04:24
created

ManifestVariable   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 94
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 5
eloc 23
dl 0
loc 94
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A getModuleUri() 0 4 1
A includeSafariNomoduleFix() 0 4 1
A includeCssModule() 0 4 1
A __construct() 0 5 1
A includeJsModule() 0 4 1
1
<?php
2
0 ignored issues
show
Coding Style introduced by
Missing file doc comment
Loading history...
3
namespace nystudio107\imageoptimize\variables;
4
5
use nystudio107\imageoptimize\helpers\Manifest as ManifestHelper;
6
use nystudio107\imageoptimize\assetbundles\imageoptimize\ImageOptimizeAsset;
7
8
use Craft;
9
use craft\helpers\Template;
10
11
class ManifestVariable
0 ignored issues
show
Coding Style introduced by
Missing class doc comment
Loading history...
12
{
13
    // Protected Static Properties
14
    // =========================================================================
15
16
    protected static $config = [
17
        // If `devMode` is on, use webpack-dev-server to all for HMR (hot module reloading)
18
        'useDevServer' => true,
19
        // Manifest names
20
        'manifest'     => [
21
            'legacy' => 'manifest-legacy.json',
22
            'modern' => 'manifest.json',
23
        ],
24
        // Public server config
25
        'server'       => [
26
            'manifestPath' => '/',
27
            'publicPath' => '/',
28
        ],
29
        // webpack-dev-server config
30
        'devServer'    => [
31
            'manifestPath' => 'http://127.0.0.1:8080',
32
            'publicPath' => '/',
33
        ],
34
    ];
35
36
    // Public Methods
37
    // =========================================================================
38
39
    /**
40
     * ManifestVariable constructor.
41
     */
42
    public function __construct()
43
    {
44
        ManifestHelper::invalidateCaches();
45
        $bundle = new ImageOptimizeAsset();
46
        self::$config['server']['manifestPath'] = Craft::getAlias($bundle->sourcePath);
47
    }
48
49
    /**
0 ignored issues
show
Coding Style introduced by
Missing short description in doc comment
Loading history...
50
     * @param string     $moduleName
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
51
     * @param bool       $async
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
52
     * @param null|array $config
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
53
     *
54
     * @return null|\Twig_Markup
55
     * @throws \yii\web\NotFoundHttpException
56
     */
57
    public function includeCssModule(string $moduleName, bool $async = false, $config = null)
0 ignored issues
show
Unused Code introduced by
The parameter $config is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

57
    public function includeCssModule(string $moduleName, bool $async = false, /** @scrutinizer ignore-unused */ $config = null)

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
58
    {
59
        return Template::raw(
60
            ManifestHelper::getCssModuleTags(self::$config, $moduleName, $async)
61
        );
62
    }
63
64
    /**
0 ignored issues
show
Coding Style introduced by
Missing short description in doc comment
Loading history...
65
     * @param string     $moduleName
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
66
     * @param bool       $async
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
67
     * @param null|array $config
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
68
     *
69
     * @return null|\Twig_Markup
70
     * @throws \yii\web\NotFoundHttpException
71
     */
72
    public function includeJsModule(string $moduleName, bool $async = false, $config = null)
0 ignored issues
show
Unused Code introduced by
The parameter $config is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

72
    public function includeJsModule(string $moduleName, bool $async = false, /** @scrutinizer ignore-unused */ $config = null)

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
73
    {
74
        return Template::raw(
75
            ManifestHelper::getJsModuleTags(self::$config, $moduleName, $async)
76
        );
77
    }
78
79
    /**
80
     * Return the URI to a module
81
     *
82
     * @param string $moduleName
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
83
     * @param string $type
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
84
     * @param null   $config
0 ignored issues
show
Documentation Bug introduced by
Are you sure the doc-type for parameter $config is correct as it would always require null to be passed?
Loading history...
Coding Style introduced by
Missing parameter comment
Loading history...
85
     *
86
     * @return null|\Twig_Markup
87
     * @throws \yii\web\NotFoundHttpException
88
     */
89
    public function getModuleUri(string $moduleName, string $type = 'modern', $config = null)
0 ignored issues
show
Unused Code introduced by
The parameter $config is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

89
    public function getModuleUri(string $moduleName, string $type = 'modern', /** @scrutinizer ignore-unused */ $config = null)

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
90
    {
91
        return Template::raw(
92
            ManifestHelper::getModule(self::$config, $moduleName, $type)
93
        );
94
    }
95
96
    /**
97
     * Include the Safari 10.1 nomodule fix JavaScript
98
     *
99
     * @return null|\Twig_Markup
100
     */
101
    public function includeSafariNomoduleFix()
102
    {
103
        return Template::raw(
104
            ManifestHelper::getSafariNomoduleFix()
105
        );
106
    }
107
}
108