Passed
Push — master ( 2ecc51...c1b656 )
by Michael
04:26 queued 02:02
created

EfqDirectoryUtility::checkVerXoops()   D

Complexity

Conditions 9
Paths 40

Size

Total Lines 38
Code Lines 26

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 9
eloc 26
nc 40
nop 2
dl 0
loc 38
rs 4.909
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Class MyalbumUtil
5
 */
6
class EfqDirectoryUtility extends XoopsObject
0 ignored issues
show
Bug introduced by
The type XoopsObject was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
7
{
8
    /**
9
     * Function responsible for checking if a directory exists, we can also write in and create an index.html file
10
     *
11
     * @param string $folder The full path of the directory to check
12
     *
13
     * @return void
14
     */
15
    public static function createFolder($folder)
16
    {
17
        //        try {
18
        //            if (!mkdir($folder) && !is_dir($folder)) {
0 ignored issues
show
Unused Code Comprehensibility introduced by
65% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
19
        //                throw new \RuntimeException(sprintf('Unable to create the %s directory', $folder));
0 ignored issues
show
Unused Code Comprehensibility introduced by
63% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
20
        //            } else {
0 ignored issues
show
Unused Code Comprehensibility introduced by
50% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
21
        //                file_put_contents($folder . '/index.html', '<script>history.go(-1);</script>');
0 ignored issues
show
Unused Code Comprehensibility introduced by
54% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
22
        //            }
23
        //        }
24
        //        catch (Exception $e) {
0 ignored issues
show
Unused Code Comprehensibility introduced by
50% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
25
        //            echo 'Caught exception: ', $e->getMessage(), "\n", '<br>';
0 ignored issues
show
Unused Code Comprehensibility introduced by
67% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
26
        //        }
27
        try {
28
            if (!file_exists($folder)) {
29
                if (!mkdir($folder) && !is_dir($folder)) {
30
                    throw new \RuntimeException(sprintf('Unable to create the %s directory', $folder));
31
                } else {
32
                    file_put_contents($folder . '/index.html', '<script>history.go(-1);</script>');
33
                }
34
            }
35
        } catch (Exception $e) {
36
            echo 'Caught exception: ', $e->getMessage(), "\n", '<br>';
37
        }
38
    }
39
40
    /**
41
     * @param $file
42
     * @param $folder
43
     * @return bool
44
     */
45
    public static function copyFile($file, $folder)
46
    {
47
        return copy($file, $folder);
48
        //        try {
49
        //            if (!is_dir($folder)) {
0 ignored issues
show
Unused Code Comprehensibility introduced by
67% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
50
        //                throw new \RuntimeException(sprintf('Unable to copy file as: %s ', $folder));
0 ignored issues
show
Unused Code Comprehensibility introduced by
63% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
51
        //            } else {
0 ignored issues
show
Unused Code Comprehensibility introduced by
50% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
52
        //                return copy($file, $folder);
0 ignored issues
show
Unused Code Comprehensibility introduced by
64% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
53
        //            }
54
        //        } catch (Exception $e) {
0 ignored issues
show
Unused Code Comprehensibility introduced by
50% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
55
        //            echo 'Caught exception: ', $e->getMessage(), "\n", "<br>";
0 ignored issues
show
Unused Code Comprehensibility introduced by
67% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
56
        //        }
57
        //        return false;
58
    }
59
60
    /**
61
     * @param $src
62
     * @param $dst
63
     */
64
    public static function recurseCopy($src, $dst)
65
    {
66
        $dir = opendir($src);
67
        //    @mkdir($dst);
68
        while (false !== ($file = readdir($dir))) {
69
            if (($file !== '.') && ($file !== '..')) {
70
                if (is_dir($src . '/' . $file)) {
71
                    self::recurseCopy($src . '/' . $file, $dst . '/' . $file);
72
                } else {
73
                    copy($src . '/' . $file, $dst . '/' . $file);
74
                }
75
            }
76
        }
77
        closedir($dir);
78
    }
79
80
    /**
81
     *
82
     * Verifies XOOPS version meets minimum requirements for this module
83
     * @static
84
     * @param XoopsModule $module
85
     * @param null|string $requiredVer
86
     *
87
     * @return bool true if meets requirements, false if not
88
     */
89
    public static function checkVerXoops(XoopsModule $module = null, $requiredVer = null)
0 ignored issues
show
Bug introduced by
The type XoopsModule was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
90
    {
91
        $moduleDirName = basename(dirname(__DIR__));
92
        if (null === $module) {
93
            $module = XoopsModule::getByDirname($moduleDirName);
94
        }
95
        xoops_loadLanguage('admin', $moduleDirName);
0 ignored issues
show
Bug introduced by
The function xoops_loadLanguage was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

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

95
        /** @scrutinizer ignore-call */ xoops_loadLanguage('admin', $moduleDirName);
Loading history...
96
        //check for minimum XOOPS version
97
        $currentVer = substr(XOOPS_VERSION, 6); // get the numeric part of string
0 ignored issues
show
Bug introduced by
The constant XOOPS_VERSION was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
98
        $currArray  = explode('.', $currentVer);
99
        if (null === $requiredVer) {
100
            $requiredVer = '' . $module->getInfo('min_xoops'); //making sure it's a string
101
        }
102
        $reqArray = explode('.', $requiredVer);
103
        $success  = true;
104
        foreach ($reqArray as $k => $v) {
105
            if (isset($currArray[$k])) {
106
                if ($currArray[$k] > $v) {
107
                    break;
108
                } elseif ($currArray[$k] == $v) {
109
                    continue;
110
                } else {
111
                    $success = false;
112
                    break;
113
                }
114
            } else {
115
                if ((int)$v > 0) { // handles things like x.x.x.0_RC2
116
                    $success = false;
117
                    break;
118
                }
119
            }
120
        }
121
122
        if (!$success) {
123
            $module->setErrors(sprintf(_AM_EFQDIR_ERROR_BAD_XOOPS, $requiredVer, $currentVer));
124
        }
125
126
        return $success;
127
    }
128
129
    /**
130
     *
131
     * Verifies PHP version meets minimum requirements for this module
132
     * @static
133
     * @param XoopsModule $module
134
     *
135
     * @return bool true if meets requirements, false if not
136
     */
137
    public static function checkVerPhp(XoopsModule $module)
138
    {
139
        xoops_loadLanguage('admin', $module->dirname());
0 ignored issues
show
Bug introduced by
The function xoops_loadLanguage was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

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

139
        /** @scrutinizer ignore-call */ xoops_loadLanguage('admin', $module->dirname());
Loading history...
140
        // check for minimum PHP version
141
        $success = true;
142
        $verNum  = PHP_VERSION;
143
        $reqVer  = $module->getInfo('min_php');
144
        if (false !== $reqVer && '' !== $reqVer) {
145
            if (version_compare($verNum, $reqVer, '<')) {
146
                $module->setErrors(sprintf(_AM_EFQDIR_ERROR_BAD_PHP, $reqVer, $verNum));
147
                $success = false;
148
            }
149
        }
150
151
        return $success;
152
    }
153
}
154