Passed
Push — develop ( a5cae5...371c07 )
by Andrew
07:14
created

ManifestVariable::includeJsModule()   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
eloc 2
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
nc 1
nop 3
1
<?php
2
0 ignored issues
show
Coding Style introduced by
Missing file doc comment
Loading history...
3
namespace nystudio107\richvariables\variables;
4
5
use nystudio107\richvariables\helpers\Manifest as ManifestHelper;
6
use nystudio107\richvariables\assetbundles\richvariables\RichVariablesAsset;
7
8
use Craft;
9
use craft\helpers\Template;
10
11
class ManifestVariable
0 ignored issues
show
Coding Style introduced by
Missing doc comment for class ManifestVariable
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.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 RichVariablesAsset();
46
        $baseAssetsUrl = Craft::$app->assetManager->getPublishedUrl(
47
            $bundle->sourcePath,
48
            true
0 ignored issues
show
Unused Code introduced by
The call to yii\web\AssetManager::getPublishedUrl() has too many arguments starting with true. ( Ignorable by Annotation )

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

48
        /** @scrutinizer ignore-call */ 
49
        $baseAssetsUrl = Craft::$app->assetManager->getPublishedUrl(

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
49
        );
50
        self::$config['server']['manifestPath'] = Craft::getAlias($bundle->sourcePath);
51
        self::$config['server']['publicPath'] = $baseAssetsUrl;
52
        $useDevServer = getenv('NYS_PLUGIN_DEVSERVER');
53
        if ($useDevServer !== false) {
54
            self::$config['useDevServer'] = (bool)$useDevServer;
55
        }
56
    }
57
58
    /**
0 ignored issues
show
Coding Style introduced by
Missing short description in doc comment
Loading history...
59
     * @param string     $moduleName
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
60
     * @param bool       $async
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
61
     * @param null|array $config
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
62
     *
63
     * @return null|\Twig_Markup
64
     * @throws \yii\web\NotFoundHttpException
65
     */
66
    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

66
    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...
67
    {
68
        return Template::raw(
69
            ManifestHelper::getCssModuleTags(self::$config, $moduleName, $async) ?? ''
70
        );
71
    }
72
73
74
    /**
75
     * Returns the uglified loadCSS rel=preload Polyfill as per:
76
     * https://github.com/filamentgroup/loadCSS#how-to-use-loadcss-recommended-example
77
     *
78
     * @return string
79
     */
80
    public static function includeCssRelPreloadPolyfill(): string
81
    {
82
        return Template::raw(
83
            ManifestHelper::getCssRelPreloadPolyfill() ?? ''
84
        );
85
    }
86
87
    /**
0 ignored issues
show
Coding Style introduced by
Missing short description in doc comment
Loading history...
88
     * @param string     $moduleName
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
89
     * @param bool       $async
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
90
     * @param null|array $config
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
91
     *
92
     * @return null|\Twig_Markup
93
     * @throws \yii\web\NotFoundHttpException
94
     */
95
    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

95
    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...
96
    {
97
        return Template::raw(
98
            ManifestHelper::getJsModuleTags(self::$config, $moduleName, $async) ?? ''
99
        );
100
    }
101
102
    /**
103
     * Return the URI to a module
104
     *
105
     * @param string $moduleName
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
106
     * @param string $type
0 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
107
     * @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...
108
     *
109
     * @return null|\Twig_Markup
110
     * @throws \yii\web\NotFoundHttpException
111
     */
112
    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

112
    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...
113
    {
114
        return Template::raw(
115
            ManifestHelper::getModule(self::$config, $moduleName, $type) ?? ''
116
        );
117
    }
118
119
    /**
120
     * Include the Safari 10.1 nomodule fix JavaScript
121
     *
122
     * @return \Twig_Markup
123
     */
124
    public function includeSafariNomoduleFix()
125
    {
126
        return Template::raw(
127
            ManifestHelper::getSafariNomoduleFix() ?? ''
128
        );
129
    }
130
}
131