Completed
Pull Request — php70 (#109)
by
unknown
03:07
created

DeprecatedPHP4StyleConstructorsSniff::process()   B

Complexity

Conditions 6
Paths 5

Size

Total Lines 26
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 6
eloc 14
nc 5
nop 2
dl 0
loc 26
rs 8.439
c 2
b 0
f 0
1
<?php
2
/**
3
 * PHPCompatibility_Sniffs_PHP_DeprecatedPHP4StyleConstructorsSniff.
4
 *
5
 * PHP version 7.0
6
 *
7
 * @category  PHP
8
 * @package   PHPCompatibility
9
 * @author    Koen Eelen <[email protected]>
10
 */
11
12
/**
13
 * PHPCompatibility_Sniffs_PHP_DeprecatedPHP4StyleConstructorsSniff.
14
 *
15
 * @category  PHP
16
 * @package   PHPCompatibility
17
 * @author    Koen Eelen <[email protected]>
18
 */
19
class PHPCompatibility_Sniffs_PHP_DeprecatedPHP4StyleConstructorsSniff extends PHPCompatibility_Sniff {
20
    public function register()
21
    {
22
        return array(T_CLASS);
23
24
    }//end register()
25
26
    public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr) {
27
        $tokens = $phpcsFile->getTokens();
28
29
        $class = $tokens[$stackPtr];
30
31
        if(!IsSet($class['scope_closer'])) {
32
            return;
33
        }
34
35
        $scopeCloser = $class['scope_closer'];
36
37
        //get the name of the class
38
        $classNamePos = $phpcsFile->findNext(T_STRING, $stackPtr);
39
        $className = $tokens[$classNamePos]['content'];
40
41
        $nextFunc = $stackPtr;
42
        while (($nextFunc = $phpcsFile->findNext(T_FUNCTION, ($nextFunc + 1), $scopeCloser)) !== false) {
43
            $funcNamePos = $phpcsFile->findNext(T_STRING, $nextFunc);
44
45
            if ($this->supportsAbove('7.0')) {
46
                if ($funcNamePos !== false && $tokens[$funcNamePos]['content'] === $className) {
47
                    $phpcsFile->addError('Deprecated PHP4 style constructor are not supported since PHP7', $funcNamePos);
48
                }
49
            }
50
        }
51
    }
52
}
53