references_registryfile::getfile()   A
last analyzed

Complexity

Conditions 3
Paths 4

Size

Total Lines 14

Duplication

Lines 5
Ratio 35.71 %

Importance

Changes 0
Metric Value
cc 3
nc 4
nop 1
dl 5
loc 14
rs 9.7998
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * ****************************************************************************
5
 * references - MODULE FOR XOOPS
6
 * Copyright (c) Hervé Thouzard of Instant Zero (http://www.instant-zero.com)
7
 *
8
 * You may not change or alter any portion of this comment or credits
9
 * of supporting developers from this source code or any supporting source code
10
 * which is considered copyrighted (c) material of the original comment or credit authors.
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14
 *
15
 * @copyright       Hervé Thouzard of Instant Zero (http://www.instant-zero.com)
16
 * @license         http://www.fsf.org/copyleft/gpl.html GNU public license
17
 * @package         references
18
 * @author          Hervé Thouzard of Instant Zero (http://www.instant-zero.com)
19
 *
20
 * ****************************************************************************
21
 */
22
class references_registryfile
23
{
24
    public $filename;    // Nom du fichier � traiter
25
26
    /**
27
     * Access the only instance of this class
28
     *
29
     * @return object
30
     *
31
     * @static
32
     * @staticvar   object
33
     */
34
    public static function getInstance()
35
    {
36
        static $instance;
37
        if (null === $instance) {
38
            $instance = new static();
39
        }
40
41
        return $instance;
42
    }
43
44
    public function __construct($fichier = null)
45
    {
46
        $this->setfile($fichier);
47
    }
48
49
    public function setfile($fichier = null)
50
    {
51
        if ($fichier) {
52
            $this->filename = XOOPS_UPLOAD_PATH . DIRECTORY_SEPARATOR . $fichier;
53
        }
54
    }
55
56
    public function getfile($fichier = null)
57
    {
58
        $fw = '';
0 ignored issues
show
Unused Code introduced by
$fw is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
59 View Code Duplication
        if (!$fichier) {
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
60
            $fw = $this->filename;
61
        } else {
62
            $fw = XOOPS_UPLOAD_PATH . DIRECTORY_SEPARATOR . $fichier;
63
        }
64
        if (file_exists($fw)) {
65
            return file_get_contents($fw);
66
        } else {
67
            return '';
68
        }
69
    }
70
71
    public function savefile($content, $fichier = null)
72
    {
73
        $fw = '';
0 ignored issues
show
Unused Code introduced by
$fw is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
74 View Code Duplication
        if (!$fichier) {
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
75
            $fw = $this->filename;
76
        } else {
77
            $fw = XOOPS_UPLOAD_PATH . DIRECTORY_SEPARATOR . $fichier;
78
        }
79
        if (file_exists($fw)) {
80
            @unlink($fw);
0 ignored issues
show
Security Best Practice introduced by
It seems like you do not handle an error condition here. This can introduce security issues, and is generally not recommended.

If you suppress an error, we recommend checking for the error condition explicitly:

// For example instead of
@mkdir($dir);

// Better use
if (@mkdir($dir) === false) {
    throw new \RuntimeException('The directory '.$dir.' could not be created.');
}
Loading history...
81
        }
82
        $fp = fopen($fw, 'w') || exit('Error, impossible to create the file ' . $this->filename);
83
        fwrite($fp, $content);
84
        fclose($fp);
85
86
        return true;
87
    }
88
}
89