Revert "Update CodeSniffs to be compatible with CodeSniffer 3.0"
authorTim Düsterhus <duesterhus@woltlab.com>
Sun, 7 May 2017 14:01:16 +0000 (16:01 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Sun, 7 May 2017 14:01:16 +0000 (16:01 +0200)
This reverts commit 8d17de131cd799e2a1a119cb9f3141521092262c.

CodeSniff/WCF/Sniffs/Classes/ClassFileNameSniff.php
CodeSniff/WCF/Sniffs/ControlStructures/ControlSignatureSniff.php
CodeSniff/WCF/Sniffs/Functions/OpeningFunctionBraceKernighanRitchieSniff.php
CodeSniff/WCF/Sniffs/Methods/MethodDeclarationSniff.php
CodeSniff/WCF/Sniffs/Namespaces/ClassMustBeImportedSniff.php
CodeSniff/WCF/Sniffs/Namespaces/SortedUseDeclarationSniff.php
CodeSniff/WCF/Sniffs/Namespaces/UseDeclarationSniff.php
CodeSniff/WCF/Sniffs/WhiteSpace/SuperfluousWhitespaceSniff.php

index d50eb5c60b3568f5b26c04a2bd09d190f9677cd1..49973829196a9068f8bcb5f3b9b2badd0c884846 100644 (file)
@@ -1,9 +1,4 @@
 <?php
-namespace WCF\Sniffs\Classes;
-
-use PHP_CodeSniffer\Sniffs\Sniff;
-use PHP_CodeSniffer\Files\File;
-
 /**
  * This sniff is based on Squiz_Sniffs_Classes_ClassFileNameSniff. Originally written
  * by Greg Sherwood <gsherwood@squiz.net> and Marc McIntyre <mmcintyre@squiz.net>
@@ -15,7 +10,7 @@ use PHP_CodeSniffer\Files\File;
  * @package    com.woltlab.wcf
  * @category   Community Framework
  */
-class ClassFileNameSniff implements Sniff {
+class WCF_Sniffs_Classes_ClassFileNameSniff implements PHP_CodeSniffer_Sniff {
        /**
         * Returns an array of tokens this test wants to listen for.
         *
@@ -37,7 +32,7 @@ class ClassFileNameSniff implements Sniff {
         *
         * @return void
         */
-       public function process(File $phpcsFile, $stackPtr) {
+       public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr) {
                $tokens   = $phpcsFile->getTokens();
                $decName  = $phpcsFile->findNext(T_STRING, $stackPtr);
                $fullPath = basename($phpcsFile->getFilename());
index ef0c0668b6965b1737482447782ec9479a4a05fd..a10dbad2af33faf4518cc9a01b874bce26d0eb0a 100644 (file)
@@ -1,8 +1,7 @@
 <?php
-namespace WCF\Sniffs\ControlStructures;
-
-use PHP_CodeSniffer\Sniffs\AbstractPatternSniff;
-use PHP_CodeSniffer\Files\File;
+if (class_exists('PHP_CodeSniffer_Standards_AbstractPatternSniff', true) === false) {
+       throw new PHP_CodeSniffer_Exception('Class PHP_CodeSniffer_Standards_AbstractPatternSniff not found');
+}
 
 /**
  * This sniff is based on Squiz_Sniffs_ControlStructures_ControlSignatureSniff. Originally written
@@ -15,7 +14,7 @@ use PHP_CodeSniffer\Files\File;
  * @package    com.woltlab.wcf
  * @category   Community Framework
  */
-class ControlSignatureSniff extends AbstractPatternSniff {
+class WCF_Sniffs_ControlStructures_ControlSignatureSniff extends PHP_CodeSniffer_Standards_AbstractPatternSniff {
        /**
         * A list of tokenizers this sniff supports.
         *
index 4f8618295f4e3050ed9037f32ed51c1f8908409f..c3423624e36f5c00b136d74850b7c0677bf64c35 100644 (file)
@@ -1,9 +1,4 @@
 <?php
-namespace WCF\Sniffs\Functions;
-
-use PHP_CodeSniffer\Sniffs\Sniff;
-use PHP_CodeSniffer\Files\File;
-
 /**
  * This sniff is based on Generic_Sniffs_Functions_OpeningFunctionBraceKernighanRitchieSniff. Originally written
  * by Greg Sherwood <gsherwood@squiz.net> and Marc McIntyre <mmcintyre@squiz.net>
@@ -15,7 +10,7 @@ use PHP_CodeSniffer\Files\File;
  * @package    com.woltlab.wcf
  * @category   Community Framework
  */
-class OpeningFunctionBraceKernighanRitchieSniff implements Sniff {
+class WCF_Sniffs_Functions_OpeningFunctionBraceKernighanRitchieSniff implements PHP_CodeSniffer_Sniff {
        /**
         * Registers the tokens that this sniff wants to listen for.
         *
@@ -34,7 +29,7 @@ class OpeningFunctionBraceKernighanRitchieSniff implements Sniff {
         *
         * @return void
         */
-       public function process(File $phpcsFile, $stackPtr) {
+       public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr) {
                $tokens = $phpcsFile->getTokens();
                
                if (isset($tokens[$stackPtr]['scope_opener']) === false) {
index 2bc178e6684f9ff5fdbf25584a797c53d4bcc9e6..0117c4b37f51fc06eace58d20c14377cc1127733 100644 (file)
@@ -1,11 +1,4 @@
 <?php
-namespace WCF\Sniffs\Methods;
-
-use PHP_CodeSniffer\Sniffs\AbstractScopeSniff;
-use PHP_CodeSniffer\Files\File;
-use PHP_CodeSniffer\Util\Tokens;
-
-
 /**
  * This sniff is based on PSR2_Sniffs_Methods_MethodDeclarationSniff. Originally written
  * by Greg Sherwood <gsherwood@squiz.net> and released under the terms of the BSD Licence.
@@ -16,7 +9,7 @@ use PHP_CodeSniffer\Util\Tokens;
  * @package    com.woltlab.wcf
  * @category   Community Framework
  */
-class MethodDeclarationSniff extends AbstractScopeSniff {
+class WCF_Sniffs_Methods_MethodDeclarationSniff extends PHP_CodeSniffer_Standards_AbstractScopeSniff {
        /**
         * Constructs a Squiz_Sniffs_Scope_MethodScopeSniff.
         */
@@ -33,7 +26,7 @@ class MethodDeclarationSniff extends AbstractScopeSniff {
         *
         * @return void
         */
-       protected function processTokenWithinScope(File $phpcsFile, $stackPtr, $currScope) {
+       protected function processTokenWithinScope(PHP_CodeSniffer_File $phpcsFile, $stackPtr, $currScope) {
                $tokens = $phpcsFile->getTokens();
                
                $methodName = $phpcsFile->getDeclarationName($stackPtr);
@@ -47,12 +40,12 @@ class MethodDeclarationSniff extends AbstractScopeSniff {
                $abstract = 0;
                $final = 0;
                
-               $find = Tokens::$methodPrefixes;
+               $find = PHP_CodeSniffer_Tokens::$methodPrefixes;
                $find[] = T_WHITESPACE;
                $prev = $phpcsFile->findPrevious($find, ($stackPtr - 1), null, true);
                
                $prefix = $stackPtr;
-               while (($prefix = $phpcsFile->findPrevious(Tokens::$methodPrefixes, ($prefix - 1), $prev)) !== false) {
+               while (($prefix = $phpcsFile->findPrevious(PHP_CodeSniffer_Tokens::$methodPrefixes, ($prefix - 1), $prev)) !== false) {
                        switch ($tokens[$prefix]['code']) {
                                case T_STATIC:
                                        $static = $prefix;
@@ -84,8 +77,4 @@ class MethodDeclarationSniff extends AbstractScopeSniff {
                        $phpcsFile->addError($error, $final, 'FinalBeforeVisibilityOrBeforeStatic');
                }
        }
-       
-       protected function processTokenOutsideScope(File $phpcsFile, $stackPtr)
-       {
-       }
-}
+}
\ No newline at end of file
index 7aec928bad669d31bfa5a7c85f9cab0b9843294e..0e1ba74ca74aacc7a8eebb94274b6993e98661f9 100644 (file)
@@ -1,9 +1,4 @@
 <?php
-namespace WCF\Sniffs\Namespaces;
-
-use PHP_CodeSniffer\Sniffs\Sniff;
-use PHP_CodeSniffer\Files\File;
-
 /**
  * Disallows calling non global classes via FQN. Classes must be imported with use [...];
  * 
@@ -12,7 +7,7 @@ use PHP_CodeSniffer\Files\File;
  * @package    com.woltlab.wcf
  * @category   Community Framework
  */
-class ClassMustBeImportedSniff implements Sniff {
+class WCF_Sniffs_Namespaces_ClassMustBeImportedSniff implements PHP_CodeSniffer_Sniff {
        /**
         * Returns an array of tokens this test wants to listen for.
         *
@@ -31,7 +26,7 @@ class ClassMustBeImportedSniff implements Sniff {
         * @param int                  $stackPtr  The position of the current token in the
         *                                        stack passed in $tokens.
         */
-       public function process(File $phpcsFile, $stackPtr) {
+       public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr) {
                $tokens = $phpcsFile->getTokens();
                
                // skip files in global namespace
index 9df7e5b475767a06e2134f9a004359ed9e3b821a..dc8b87ae5f428ca66a873aa41441b35da8052cb8 100644 (file)
@@ -1,9 +1,4 @@
 <?php
-namespace WCF\Sniffs\Namespaces;
-
-use PHP_CodeSniffer\Sniffs\Sniff;
-use PHP_CodeSniffer\Files\File;
-
 /**
  * This sniff is based on Squiz_Sniffs_Classes_ClassFileNameSniff. Originally written
  * by Greg Sherwood <gsherwood@squiz.net> and released under the terms of the BSD Licence.
@@ -14,7 +9,7 @@ use PHP_CodeSniffer\Files\File;
  * @package    com.woltlab.wcf
  * @category   Community Framework
  */
-class SortedUseDeclarationSniff implements Sniff {
+class WCF_Sniffs_Namespaces_SortedUseDeclarationSniff implements PHP_CodeSniffer_Sniff {
        /**
         * Returns an array of tokens this test wants to listen for.
         *
@@ -33,7 +28,7 @@ class SortedUseDeclarationSniff implements Sniff {
         *
         * @return void
         */
-       public function process(File $phpcsFile, $stackPtr) {
+       public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr) {
                $tokens = $phpcsFile->getTokens();
                
                $classes = array();
index 7070320ee7a788657077e8492a30cf014932fb9a..1d9bac295a4c2bf9789215d79d8400f0fb57c4d6 100644 (file)
@@ -1,9 +1,4 @@
 <?php
-namespace WCF\Sniffs\Namespaces;
-
-use PHP_CodeSniffer\Sniffs\Sniff;
-use PHP_CodeSniffer\Files\File;
-
 /**
  * This sniff is based on Squiz_Sniffs_Classes_ClassFileNameSniff. Originally written
  * by Greg Sherwood <gsherwood@squiz.net> and released under the terms of the BSD Licence.
@@ -14,164 +9,90 @@ use PHP_CodeSniffer\Files\File;
  * @package    com.woltlab.wcf
  * @category   Community Framework
  */
-class UseDeclarationSniff implements Sniff
-{
-
-
-    /**
-     * Returns an array of tokens this test wants to listen for.
-     *
-     * @return array
-     */
-    public function register()
-    {
-        return array(T_USE);
-
-    }//end register()
-
-
-    /**
-     * Processes this test, when one of its tokens is encountered.
-     *
-     * @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
-     * @param int                  $stackPtr  The position of the current token in
-     *                                        the stack passed in $tokens.
-     *
-     * @return void
-     */
-    public function process(File $phpcsFile, $stackPtr)
-    {
-        if ($this->_shouldIgnoreUse($phpcsFile, $stackPtr) === true) {
-            return;
-        }
-
-        $tokens = $phpcsFile->getTokens();
-
-        // One space after the use keyword.
-        if ($tokens[($stackPtr + 1)]['content'] !== ' ') {
-            $error = 'There must be a single space after the USE keyword';
-            $fix   = $phpcsFile->addFixableError($error, $stackPtr, 'SpaceAfterUse');
-            if ($fix === true) {
-                $phpcsFile->fixer->replaceToken(($stackPtr + 1), ' ');
-            }
-        }
-
-        // Only one USE declaration allowed per statement.
-        $next = $phpcsFile->findNext(array(T_COMMA, T_SEMICOLON), ($stackPtr + 1));
-        if ($tokens[$next]['code'] === T_COMMA) {
-            $error = 'There must be one USE keyword per declaration';
-            $fix   = $phpcsFile->addFixableError($error, $stackPtr, 'MultipleDeclarations');
-            if ($fix === true) {
-                $phpcsFile->fixer->replaceToken($next, ';'.$phpcsFile->eolChar.'use ');
-            }
-        }
-
-        // Leading NS_SEPARATOR must be omitted
-        $next = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), ($stackPtr + 1));
-        if ($tokens[$next]['code'] === T_NS_SEPARATOR) {
-            $error = 'Leading backslash must be omitted.';
-            $phpcsFile->addError($error, $stackPtr, 'LeadingNSSeparator');
-        }
-        
-        // Make sure this USE comes after the first namespace declaration.
-        $prev = $phpcsFile->findPrevious(T_NAMESPACE, ($stackPtr - 1));
-        if ($prev !== false) {
-            $first = $phpcsFile->findNext(T_NAMESPACE, 1);
-            if ($prev !== $first) {
-                $error = 'USE declarations must go after the first namespace declaration';
-                $phpcsFile->addError($error, $stackPtr, 'UseAfterNamespace');
-            }
-        }
-
-        $end = $phpcsFile->findNext(T_SEMICOLON, ($stackPtr + 1));
-        $next = $phpcsFile->findNext(T_WHITESPACE, ($end + 1), null, true);
-        if ($tokens[$next]['code'] === T_USE) {
-            $diff = $tokens[$next]['line'] - $tokens[$stackPtr]['line'] - 1;
-            if ($diff !== 0) {
-                $error = 'There must not be any blank lines between use statements; %s found;';
-                $data = array($diff);
-                $phpcsFile->addError($error, $stackPtr, 'SpaceBetweenUse', $data);
-            }
-        }
-        
-        // Only interested in the last USE statement from here onwards.
-        $nextUse = $phpcsFile->findNext(T_USE, ($stackPtr + 1));
-        while ($this->_shouldIgnoreUse($phpcsFile, $nextUse) === true) {
-            $nextUse = $phpcsFile->findNext(T_USE, ($nextUse + 1));
-            if ($nextUse === false) {
-                break;
-            }
-        }
-
-        if ($nextUse !== false) {
-            return;
-        }
-
-        $end  = $phpcsFile->findNext(T_SEMICOLON, ($stackPtr + 1));
-        $next = $phpcsFile->findNext(T_WHITESPACE, ($end + 1), null, true);
-
-        if ($tokens[$next]['code'] === T_CLOSE_TAG) {
-            return;
-        }
-
-        $diff = ($tokens[$next]['line'] - $tokens[$end]['line'] - 1);
-        if ($diff !== 1) {
-            if ($diff < 0) {
-                $diff = 0;
-            }
-
-            $error = 'There must be one blank line after the last USE statement; %s found;';
-            $data  = array($diff);
-            $fix   = $phpcsFile->addFixableError($error, $stackPtr, 'SpaceAfterLastUse', $data);
-            if ($fix === true) {
-                if ($diff === 0) {
-                    $phpcsFile->fixer->addNewline($end);
-                } else {
-                    $phpcsFile->fixer->beginChangeset();
-                    for ($i = ($end + 1); $i < $next; $i++) {
-                        if ($tokens[$i]['line'] === $tokens[$next]['line']) {
-                            break;
-                        }
-
-                        $phpcsFile->fixer->replaceToken($i, '');
-                    }
-
-                    $phpcsFile->fixer->addNewline($end);
-                    $phpcsFile->fixer->endChangeset();
-                }
-            }
-        }//end if
-
-    }//end process()
-
-
-    /**
-     * Check if this use statement is part of the namespace block.
-     *
-     * @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
-     * @param int                  $stackPtr  The position of the current token in
-     *                                        the stack passed in $tokens.
-     *
-     * @return void
-     */
-    private function _shouldIgnoreUse(File $phpcsFile, $stackPtr)
-    {
-        $tokens = $phpcsFile->getTokens();
-
-        // Ignore USE keywords inside closures.
-        $next = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true);
-        if ($tokens[$next]['code'] === T_OPEN_PARENTHESIS) {
-            return true;
-        }
-
-        // Ignore USE keywords for traits.
-        if ($phpcsFile->hasCondition($stackPtr, array(T_CLASS, T_TRAIT)) === true) {
-            return true;
-        }
-
-        return false;
-
-    }//end _shouldIgnoreUse()
-
-
-}//end class
+class WCF_Sniffs_Namespaces_UseDeclarationSniff implements PHP_CodeSniffer_Sniff {
+       /**
+        * Returns an array of tokens this test wants to listen for.
+        *
+        * @return array
+        */
+       public function register() {
+               return array(T_USE);
+       }
+
+       /**
+        * Processes this test, when one of its tokens is encountered.
+        *
+        * @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
+        * @param int                             $stackPtr  The position of the current token in
+        *                                                                              the stack passed in $tokens.
+        *
+        * @return void
+        */
+       public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr) {
+               $tokens = $phpcsFile->getTokens();
+               
+               // Ignore USE keywords inside closures.
+               $next = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true);
+               if ($tokens[$next]['code'] === T_OPEN_PARENTHESIS) {
+                       return;
+               }
+               
+               // Only one USE declaration allowed per statement.
+               $next = $phpcsFile->findNext(array(T_COMMA, T_SEMICOLON), ($stackPtr + 1));
+               if ($tokens[$next]['code'] === T_COMMA) {
+                       $error = 'There must be one USE keyword per declaration';
+                       $phpcsFile->addError($error, $stackPtr, 'MultipleDeclarations');
+               }
+               
+               // Leading NS_SEPARATOR must be omitted
+               $next = $phpcsFile->findNext(array(T_NS_SEPARATOR, T_STRING), ($stackPtr + 1));
+               if ($tokens[$next]['code'] === T_NS_SEPARATOR) {
+                       $error = 'Leading backslash must be omitted.';
+                       $phpcsFile->addError($error, $stackPtr, 'LeadingNSSeparator');
+               }
+               
+               // Make sure this USE comes after the first namespace declaration.
+               $prev = $phpcsFile->findPrevious(T_NAMESPACE, ($stackPtr - 1));
+               if ($prev !== false) {
+                       $first = $phpcsFile->findNext(T_NAMESPACE, 1);
+                       if ($prev !== $first) {
+                               $error = 'USE declarations must go after the first namespace declaration';
+                               $phpcsFile->addError($error, $stackPtr, 'UseAfterNamespace');
+                       }
+               }
+               
+               $end = $phpcsFile->findNext(T_SEMICOLON, ($stackPtr + 1));
+               $next = $phpcsFile->findNext(T_WHITESPACE, ($end + 1), null, true);
+               if ($tokens[$next]['code'] === T_USE) {
+                       $diff = $tokens[$next]['line'] - $tokens[$stackPtr]['line'] - 1;
+                       if ($diff !== 0) {
+                               $error = 'There must not be any blank lines between use statements; %s found;';
+                               $data = array($diff);
+                               $phpcsFile->addError($error, $stackPtr, 'SpaceBetweenUse', $data);
+                       }
+               }
+               
+               // Only interested in the last USE statement from here onwards.
+               $nextUse = $phpcsFile->findNext(T_USE, ($stackPtr + 1));
+               if ($nextUse !== false) {
+                       $next = $phpcsFile->findNext(T_WHITESPACE, ($nextUse + 1), null, true);
+                       if ($tokens[$next]['code'] !== T_OPEN_PARENTHESIS) {
+                               return;
+                       }
+               }
+               
+               $end  = $phpcsFile->findNext(T_SEMICOLON, ($stackPtr + 1));
+               $next = $phpcsFile->findNext(T_WHITESPACE, ($end + 1), null, true);
+               $diff = ($tokens[$next]['line'] - $tokens[$end]['line'] - 1);
+               if ($diff !== 1) {
+                       if ($diff < 0) {
+                               $diff = 0;
+                       }
+                       
+                       $error = 'There must be one blank line after the last USE statement; %s found;';
+                       $data = array($diff);
+                       $phpcsFile->addError($error, $stackPtr, 'SpaceAfterLastUse', $data);
+               }
+       
+       }
+}
index 204b16c1214b0765e95040b0c145725480d133b2..ec4cf0bd7e3c7d228558e82f8a76f29058333be7 100644 (file)
@@ -1,9 +1,4 @@
 <?php
-namespace WCF\Sniffs\WhiteSpace;
-
-use PHP_CodeSniffer\Sniffs\Sniff;
-use PHP_CodeSniffer\Files\File;
-
 /**
  * This sniff is based on Squiz_Sniffs_WhiteSpace_SuperfluousWhitespaceSniff. Originally written
  * by Greg Sherwood <gsherwood@squiz.net> and Marc McIntyre <mmcintyre@squiz.net>
@@ -15,7 +10,7 @@ use PHP_CodeSniffer\Files\File;
  * @package    com.woltlab.wcf
  * @category   Community Framework
  */
-class SuperfluousWhitespaceSniff implements Sniff {
+class WCF_Sniffs_WhiteSpace_SuperfluousWhitespaceSniff implements PHP_CodeSniffer_Sniff {
        /**
         * A list of tokenizers this sniff supports.
         *
@@ -57,7 +52,7 @@ class SuperfluousWhitespaceSniff implements Sniff {
         * @param int                  $stackPtr  The position of the current token in the
         *                                        stack passed in $tokens.
         */
-       public function process(File $phpcsFile, $stackPtr) {
+       public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr) {
                $tokens = $phpcsFile->getTokens();
                
                if ($tokens[$stackPtr]['code'] === T_OPEN_TAG) {