Completed
Push — master ( 0753cc...cb3576 )
by Дмитрий
07:55 queued 03:52
created

DeprecatedFunctions   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 31.58%

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 43
ccs 6
cts 19
cp 0.3158
rs 10
wmc 7
lcom 1
cbo 2

1 Method

Rating   Name   Duplication   Size   Complexity  
C pass() 0 23 7
1
<?php
2
3
namespace PHPSA\Analyzer\Pass\Expression\FunctionCall;
4
5
use PhpParser\Node\Expr\FuncCall;
6
use PhpParser\Node\Name;
7
use PHPSA\Compiler\Expression;
8
use PHPSA\Context;
9
10
class DeprecatedFunctions extends AbstractFunctionCallAnalyzer
11
{
12
    protected $map = array(
13
        'datefmt_set_timezone_id' => ['5.5','IntlDateFormatter::setTimeZone()'],
14
        'define_syslog_variables' => ['5.3','_'],
15
        'set_magic_quotes_runtime' => ['5.3','_'],
16
        'set_socket_blocking' => ['5.3','_'],
17
        'ereg' => ['5.3','preg_match()'],
18
        'eregi' => ['5.3','preg_match()'],
19
        'ereg_replace' => ['5.3','preg_replace()'],
20
        'eregi_replace' => ['5.3','preg_replace()'],
21
        'split' => ['5.3','explode()'],
22
        'spliti' => ['5.3','preg_split()'],
23
        'sql_regcase' => ['5.3','preg_match()'],
24
        'session_is_registered' => ['5.3','$_SESSION'],
25
        'session_unregister' => ['5.3','$_SESSION'],
26
        'session_register' => ['5.3','$_SESSION'],
27
    );
28
29 6
    public function pass(FuncCall $funcCall, Context $context)
30
    {
31 6
        $functionName = $this->resolveFunctionName($funcCall, $context);
32 6
        if ($functionName && isset($this->map[$functionName])) {
33
            $context->notice(
34
                'deprecated.function',
35
                sprintf('%s() is deprecated since PHP %s. Use %s instead.', $functionName, $this->map[$functionName][0], $this->map[$functionName][1]),
36
                $funcCall
37
            );
38 6
        } elseif ($functionName && substr($functionName, 0, 6) === "mysql_") {
39
            $context->notice(
40
                'deprecated.function',
41
                sprintf('The MySQL Extension is deprecated since PHP 5.5. Use PDO instead.'),
42
                $funcCall
43
            );
44 6
        } elseif ($functionName && substr($functionName, 0, 7) === "mcrypt_") {
45
            $context->notice(
46
                'deprecated.function',
47
                sprintf('The Mcrypt Extension is deprecated since PHP 7.1. Use paragonie/halite instead.'),
48
                $funcCall
49
            );
50
        }
51 6
    }
52
}
53