jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/355067 )
Change subject: Update for CodeSniffer 3.0
......................................................................
Update for CodeSniffer 3.0
CodeSniffer 3.0 is a major upstream refactor which requires changes to
all of our custom sniffs and test harness.
Each sniff is now placed in a MediaWiki\Sniffs\<category> namespace, and
uses the namespaced versions of the PHP_CodeSniffer classes.
PrefixedGlobalFunctions is changed to not use static state which is
unreliable in the multi-processed environment.
addWarning() now requires a third $code argument.
The test harness uses the new internal mechanisms for running tests, and
avoids the need for the vfs dependency.
Bug: T142474
Change-Id: I6a934e15fd85aec31b9070c9fbaa34cadd763296
---
M MediaWiki/Sniffs/AlternativeSyntax/AlternativeSyntaxSniff.php
M MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php
M MediaWiki/Sniffs/Commenting/IllegalSingleLineCommentSniff.php
M MediaWiki/Sniffs/ControlStructures/AssignmentInControlStructuresSniff.php
M MediaWiki/Sniffs/ControlStructures/IfElseStructureSniff.php
M MediaWiki/Sniffs/ExtraCharacters/ParenthesesAroundKeywordSniff.php
M MediaWiki/Sniffs/NamingConventions/LowerCamelFunctionsNameSniff.php
M MediaWiki/Sniffs/NamingConventions/PrefixedGlobalFunctionsSniff.php
M MediaWiki/Sniffs/NamingConventions/ValidGlobalNameSniff.php
M MediaWiki/Sniffs/Usage/DbrQueryUsageSniff.php
M MediaWiki/Sniffs/Usage/DirUsageSniff.php
M MediaWiki/Sniffs/Usage/ExtendClassUsageSniff.php
M MediaWiki/Sniffs/Usage/GotoUsageSniff.php
M MediaWiki/Sniffs/Usage/SuperGlobalsUsageSniff.php
M MediaWiki/Sniffs/VariableAnalysis/UnusedGlobalVariablesSniff.php
M MediaWiki/Sniffs/WhiteSpace/DisallowEmptyLineFunctionsSniff.php
M MediaWiki/Sniffs/WhiteSpace/MultipleEmptyLinesSniff.php
M MediaWiki/Sniffs/WhiteSpace/SpaceAfterControlStructureSniff.php
M MediaWiki/Sniffs/WhiteSpace/SpaceBeforeClassBraceSniff.php
M MediaWiki/Sniffs/WhiteSpace/SpaceBeforeControlStructureBraceSniff.php
M MediaWiki/Sniffs/WhiteSpace/SpaceBeforeSingleLineCommentSniff.php
M MediaWiki/Sniffs/WhiteSpace/SpaceyParenthesisSniff.php
M MediaWiki/Tests/MediaWikiStandardTest.php
M MediaWiki/Tests/MediaWikiTestHelper.php
M TestHelper.php
M composer.json
M phpunit.bootstrap.php
27 files changed, 301 insertions(+), 229 deletions(-)
Approvals:
Paladox: Looks good to me, but someone else must approve
Hashar: Looks good to me, but someone else must approve
Addshore: Looks good to me, approved
jenkins-bot: Verified
Jforrester: Looks good to me, but someone else must approve
diff --git a/MediaWiki/Sniffs/AlternativeSyntax/AlternativeSyntaxSniff.php
b/MediaWiki/Sniffs/AlternativeSyntax/AlternativeSyntaxSniff.php
index b44e4b4..c8201b9 100644
--- a/MediaWiki/Sniffs/AlternativeSyntax/AlternativeSyntaxSniff.php
+++ b/MediaWiki/Sniffs/AlternativeSyntax/AlternativeSyntaxSniff.php
@@ -2,11 +2,13 @@
/**
* Verify alternative syntax is not being used
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_AlternativeSyntax_AlternativeSyntaxSniff
- implements PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+namespace MediaWiki\Sniffs\AlternativeSyntax;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class AlternativeSyntaxSniff implements Sniff {
/**
* @return array
*/
@@ -24,11 +26,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$error = 'Alternative syntax such as "%s" should not be used';
$data = [ $tokens[$stackPtr]['content'] ];
diff --git a/MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php
b/MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php
index 93a21ea..3edbfdf 100644
--- a/MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php
+++ b/MediaWiki/Sniffs/Commenting/FunctionCommentSniff.php
@@ -16,8 +16,14 @@
* @license
https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
* @link http://pear.php.net/package/PHP_CodeSniffer
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_Commenting_FunctionCommentSniff implements
PHP_CodeSniffer_Sniff {
+
+namespace MediaWiki\Sniffs\Commenting;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+use PHP_CodeSniffer\Util\Tokens;
+
+class FunctionCommentSniff implements Sniff {
/**
* Standard class methods that
@@ -45,13 +51,13 @@
/**
* Processes this test, when one of its tokens is encountered.
*
- * @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
+ * @param 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 ) {
+ public function process( File $phpcsFile, $stackPtr ) {
if ( substr( $phpcsFile->getFilename(), -8 ) === 'Test.php' ) {
// Don't check documentation for test cases
return;
@@ -82,7 +88,7 @@
}
}
- $find = PHP_CodeSniffer_Tokens::$methodPrefixes;
+ $find = Tokens::$methodPrefixes;
$find[] = T_WHITESPACE;
$commentEnd = $phpcsFile->findPrevious( $find, ( $stackPtr - 1
), null, true );
if ( $tokens[$commentEnd]['code'] === T_COMMENT ) {
@@ -98,7 +104,11 @@
if ( $tokens[$commentEnd]['code'] !== T_DOC_COMMENT_CLOSE_TAG
&& $tokens[$commentEnd]['code'] !== T_COMMENT
) {
- $phpcsFile->addError( 'Missing function doc comment',
$stackPtr, "Missing.$visStr" );
+ $phpcsFile->addError(
+ 'Missing function doc comment',
+ $stackPtr,
+ "FunctionComment.Missing.$visStr"
+ );
$phpcsFile->recordMetric( $stackPtr, 'Function has doc
comment', 'no' );
return;
} else {
@@ -133,13 +143,13 @@
/**
* Process the return comment of this function comment.
*
- * @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
+ * @param File $phpcsFile The file being scanned.
* @param int $stackPtr The position of the current token in the stack
passed in $tokens.
* @param int $commentStart The position in the stack where the comment
started.
*
* @return void
*/
- protected function processReturn( PHP_CodeSniffer_File $phpcsFile,
$stackPtr, $commentStart ) {
+ protected function processReturn( File $phpcsFile, $stackPtr,
$commentStart ) {
$tokens = $phpcsFile->getTokens();
// Return if no scope_opener.
if ( !isset( $tokens[$stackPtr]['scope_opener'] ) ) {
@@ -187,13 +197,13 @@
/**
* Process any throw tags that this function comment has.
*
- * @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
+ * @param File $phpcsFile The file being scanned.
* @param int $stackPtr The position of the current token in the stack
passed in $tokens.
* @param int $commentStart The position in the stack where the comment
started.
*
* @return void
*/
- protected function processThrows( PHP_CodeSniffer_File $phpcsFile,
$stackPtr, $commentStart ) {
+ protected function processThrows( File $phpcsFile, $stackPtr,
$commentStart ) {
$tokens = $phpcsFile->getTokens();
$throws = [];
foreach ( $tokens[$commentStart]['comment_tags'] as $tag ) {
@@ -222,13 +232,13 @@
/**
* Process the function parameter comments.
*
- * @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
+ * @param File $phpcsFile The file being scanned.
* @param int $stackPtr The position of the current token in the stack
passed in $tokens.
* @param int $commentStart The position in the stack where the comment
started.
*
* @return void
*/
- protected function processParams( PHP_CodeSniffer_File $phpcsFile,
$stackPtr, $commentStart ) {
+ protected function processParams( File $phpcsFile, $stackPtr,
$commentStart ) {
$tokens = $phpcsFile->getTokens();
$params = [];
$maxType = 0;
diff --git a/MediaWiki/Sniffs/Commenting/IllegalSingleLineCommentSniff.php
b/MediaWiki/Sniffs/Commenting/IllegalSingleLineCommentSniff.php
index 0c2d36a..4359da3 100644
--- a/MediaWiki/Sniffs/Commenting/IllegalSingleLineCommentSniff.php
+++ b/MediaWiki/Sniffs/Commenting/IllegalSingleLineCommentSniff.php
@@ -5,10 +5,13 @@
* Fail: /*** Comments here again ***\/
* Pass: /* Your comments here *\/
*/
- // @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_Commenting_IllegalSingleLineCommentSniff
- implements PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+
+namespace MediaWiki\Sniffs\Commenting;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class IllegalSingleLineCommentSniff implements Sniff {
/**
* @return array
@@ -20,11 +23,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The index of current token.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$currentToken = $tokens[$stackPtr];
diff --git
a/MediaWiki/Sniffs/ControlStructures/AssignmentInControlStructuresSniff.php
b/MediaWiki/Sniffs/ControlStructures/AssignmentInControlStructuresSniff.php
index 88c0019..754caa2 100644
--- a/MediaWiki/Sniffs/ControlStructures/AssignmentInControlStructuresSniff.php
+++ b/MediaWiki/Sniffs/ControlStructures/AssignmentInControlStructuresSniff.php
@@ -10,11 +10,14 @@
* Pass: if ( $a === array( 1 => 0 ) )
* Pass: while ( $a < 0 )
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_ControlStructures_AssignmentInControlStructuresSniff
- implements PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+namespace MediaWiki\Sniffs\ControlStructures;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+use PHP_CodeSniffer\Util\Tokens;
+
+class AssignmentInControlStructuresSniff implements Sniff {
/**
* @return array
*/
@@ -27,11 +30,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$token = $tokens[$stackPtr];
@@ -41,7 +44,7 @@
$code = $tokens[$next]['code'];
// Check if any assignment operator was used. Allow
T_DOUBLE_ARROW as that can
// be used in an array like `if ( $foo === array( 'foo'
=> 'bar' ) )`
- if ( in_array( $code,
PHP_CodeSniffer_Tokens::$assignmentTokens, true )
+ if ( in_array( $code, Tokens::$assignmentTokens, true )
&& $code !== T_DOUBLE_ARROW ) {
$error = 'Assignment expression not allowed
within "%s".';
$phpcsFile->addError(
diff --git a/MediaWiki/Sniffs/ControlStructures/IfElseStructureSniff.php
b/MediaWiki/Sniffs/ControlStructures/IfElseStructureSniff.php
index 2c0be49..db710d3 100644
--- a/MediaWiki/Sniffs/ControlStructures/IfElseStructureSniff.php
+++ b/MediaWiki/Sniffs/ControlStructures/IfElseStructureSniff.php
@@ -6,11 +6,13 @@
* Pass: } elseif ( $a == 1 ) {
* Fail: }\nelseif ( $a == 1 ) {
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_ControlStructures_IfElseStructureSniff
- implements PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+namespace MediaWiki\Sniffs\ControlStructures;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class IfElseStructureSniff implements Sniff {
/**
* @return array
*/
@@ -22,11 +24,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$prevToken = $tokens[$stackPtr - 1];
$nextToken = $tokens[$stackPtr + 1];
diff --git a/MediaWiki/Sniffs/ExtraCharacters/ParenthesesAroundKeywordSniff.php
b/MediaWiki/Sniffs/ExtraCharacters/ParenthesesAroundKeywordSniff.php
index fab6ba9..e5147e7 100644
--- a/MediaWiki/Sniffs/ExtraCharacters/ParenthesesAroundKeywordSniff.php
+++ b/MediaWiki/Sniffs/ExtraCharacters/ParenthesesAroundKeywordSniff.php
@@ -13,9 +13,13 @@
* * include
* * include_once
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_ExtraCharacters_ParenthesesAroundKeywordSniff
- implements PHP_CodeSniffer_Sniff {
+
+namespace MediaWiki\Sniffs\ExtraCharacters;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class ParenthesesAroundKeywordSniff implements Sniff {
// @codingStandardsIgnoreEnd
/**
@@ -32,11 +36,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$nextToken = $tokens[$stackPtr + 1];
$nextSecondToken = $tokens[$stackPtr + 2];
diff --git
a/MediaWiki/Sniffs/NamingConventions/LowerCamelFunctionsNameSniff.php
b/MediaWiki/Sniffs/NamingConventions/LowerCamelFunctionsNameSniff.php
index 333e0ad..0b09cc0 100644
--- a/MediaWiki/Sniffs/NamingConventions/LowerCamelFunctionsNameSniff.php
+++ b/MediaWiki/Sniffs/NamingConventions/LowerCamelFunctionsNameSniff.php
@@ -2,9 +2,13 @@
/**
* Make sure lower camel function name.
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_NamingConventions_LowerCamelFunctionsNameSniff
- implements PHP_CodeSniffer_Sniff {
+
+namespace MediaWiki\Sniffs\NamingConventions;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class LowerCamelFunctionsNameSniff implements Sniff {
// @codingStandardsIgnoreEnd
// Magic methods.
@@ -56,11 +60,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$functionContent = $tokens[$stackPtr+2]['content'];
$lowerFunctionName = strtolower( $functionContent );
diff --git
a/MediaWiki/Sniffs/NamingConventions/PrefixedGlobalFunctionsSniff.php
b/MediaWiki/Sniffs/NamingConventions/PrefixedGlobalFunctionsSniff.php
index a6ff2c5..6aebc7b 100644
--- a/MediaWiki/Sniffs/NamingConventions/PrefixedGlobalFunctionsSniff.php
+++ b/MediaWiki/Sniffs/NamingConventions/PrefixedGlobalFunctionsSniff.php
@@ -4,9 +4,13 @@
* A global function's name must be prefixed with 'wf' or 'ef'.
* Per https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP#Naming
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_NamingConventions_PrefixedGlobalFunctionsSniff
- implements PHP_CodeSniffer_Sniff {
+
+namespace MediaWiki\Sniffs\NamingConventions;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class PrefixedGlobalFunctionsSniff implements Sniff {
// @codingStandardsIgnoreEnd
@@ -22,29 +26,29 @@
/**
* @var int[] array containing the first locations of namespaces in
files that we have seen so far.
*/
- private static $firstNamespaceLocations = [];
+ private $firstNamespaceLocations = [];
/**
* @var string[] array containing a list of files that contain no
namespace statements.
*/
- private static $noNamespaceFiles = [];
+ private $noNamespaceFiles = [];
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $ptr The current token index.
*
* @return bool Does a namespace statement exist before this position
in the file?
*/
- private function tokenIsNamespaced( PHP_CodeSniffer_File $phpcsFile,
$ptr ) {
+ private function tokenIsNamespaced( File $phpcsFile, $ptr ) {
$fileName = $phpcsFile->getFilename();
// Check if we already know if the token is namespaced or not
and return early if possible.
if (
- isset( self::$firstNamespaceLocations[$fileName] ) &&
- $ptr > self::$firstNamespaceLocations[$fileName]
+ isset( $this->firstNamespaceLocations[$fileName] ) &&
+ $ptr > $this->firstNamespaceLocations[$fileName]
) {
return true;
}
- if ( isset( self::$noNamespaceFiles[$fileName] ) ) {
+ if ( isset( $this->noNamespaceFiles[$fileName] ) ) {
return false;
}
@@ -55,18 +59,18 @@
$token = $tokens[$tokenIndex];
if ( $token['type'] === "T_NAMESPACE" && !isset(
$token['scope_opener'] ) ) {
// In the format of "namespace Foo;", which
applies to everything below
- self::$firstNamespaceLocations[$fileName] =
$tokenIndex;
+ $this->firstNamespaceLocations[$fileName] =
$tokenIndex;
}
$tokenIndex--;
}
- if ( !isset( self::$firstNamespaceLocations[$fileName] ) ) {
- self::$noNamespaceFiles[$fileName] = true;
+ if ( !isset( $this->firstNamespaceLocations[$fileName] ) ) {
+ $this->noNamespaceFiles[$fileName] = true;
}
// Return if the token was namespaced.
if (
- isset( self::$firstNamespaceLocations[$fileName] ) &&
- $ptr > self::$firstNamespaceLocations[$fileName]
+ isset( $this->firstNamespaceLocations[$fileName] ) &&
+ $ptr > $this->firstNamespaceLocations[$fileName]
) {
return true;
}
@@ -74,11 +78,11 @@
return false;
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
if ( $this->tokenIsNamespaced( $phpcsFile, $stackPtr ) ) {
return;
}
diff --git a/MediaWiki/Sniffs/NamingConventions/ValidGlobalNameSniff.php
b/MediaWiki/Sniffs/NamingConventions/ValidGlobalNameSniff.php
index cd82eae..27c1ae5 100644
--- a/MediaWiki/Sniffs/NamingConventions/ValidGlobalNameSniff.php
+++ b/MediaWiki/Sniffs/NamingConventions/ValidGlobalNameSniff.php
@@ -3,9 +3,13 @@
* Verify MediaWiki global variable naming convention.
* A global name must be prefixed with 'wg'.
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_NamingConventions_ValidGlobalNameSniff implements
PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+
+namespace MediaWiki\Sniffs\NamingConventions;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class ValidGlobalNameSniff implements Sniff {
/**
* http://php.net/manual/en/reserved.variables.argv.php
@@ -37,11 +41,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$nameIndex = $phpcsFile->findNext( T_VARIABLE, $stackPtr + 1 );
diff --git a/MediaWiki/Sniffs/Usage/DbrQueryUsageSniff.php
b/MediaWiki/Sniffs/Usage/DbrQueryUsageSniff.php
index 8eec13b..3ba5374 100644
--- a/MediaWiki/Sniffs/Usage/DbrQueryUsageSniff.php
+++ b/MediaWiki/Sniffs/Usage/DbrQueryUsageSniff.php
@@ -4,9 +4,12 @@
*
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_Usage_DbrQueryUsageSniff implements
PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+namespace MediaWiki\Sniffs\Usage;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class DbrQueryUsageSniff implements Sniff {
/**
* @return array
@@ -20,11 +23,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$currToken = $tokens[$stackPtr];
diff --git a/MediaWiki/Sniffs/Usage/DirUsageSniff.php
b/MediaWiki/Sniffs/Usage/DirUsageSniff.php
index 43c52b6..cfc05eb 100644
--- a/MediaWiki/Sniffs/Usage/DirUsageSniff.php
+++ b/MediaWiki/Sniffs/Usage/DirUsageSniff.php
@@ -10,9 +10,12 @@
* Pass: parent::dirname( __FILE__ )
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_Usage_DirUsageSniff implements PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+namespace MediaWiki\Sniffs\Usage;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class DirUsageSniff implements Sniff {
/**
* @return array
@@ -23,11 +26,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$ignore = [
diff --git a/MediaWiki/Sniffs/Usage/ExtendClassUsageSniff.php
b/MediaWiki/Sniffs/Usage/ExtendClassUsageSniff.php
index de84420..6881351 100644
--- a/MediaWiki/Sniffs/Usage/ExtendClassUsageSniff.php
+++ b/MediaWiki/Sniffs/Usage/ExtendClassUsageSniff.php
@@ -6,9 +6,12 @@
* Should use $this->getRequest() rather than $wgRequest on ContextSource
extend.
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_Usage_ExtendClassUsageSniff implements
PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+namespace MediaWiki\Sniffs\Usage;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class ExtendClassUsageSniff implements Sniff {
private $eligableCls = null;
@@ -71,11 +74,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$currToken = $tokens[$stackPtr];
diff --git a/MediaWiki/Sniffs/Usage/GotoUsageSniff.php
b/MediaWiki/Sniffs/Usage/GotoUsageSniff.php
index e6975ed..c8a7cd4 100644
--- a/MediaWiki/Sniffs/Usage/GotoUsageSniff.php
+++ b/MediaWiki/Sniffs/Usage/GotoUsageSniff.php
@@ -2,9 +2,13 @@
/**
* Report error when `goto` is used
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_Usage_GotoUsageSniff implements PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+
+namespace MediaWiki\Sniffs\Usage;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class GotoUsageSniff implements Sniff {
/**
* @return array
@@ -17,11 +21,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$error = 'Control statement "goto" must not be used.';
$phpcsFile->addError( $error, $stackPtr, 'GotoUsage' );
}
diff --git a/MediaWiki/Sniffs/Usage/SuperGlobalsUsageSniff.php
b/MediaWiki/Sniffs/Usage/SuperGlobalsUsageSniff.php
index 118396f..cba6b8a 100644
--- a/MediaWiki/Sniffs/Usage/SuperGlobalsUsageSniff.php
+++ b/MediaWiki/Sniffs/Usage/SuperGlobalsUsageSniff.php
@@ -7,9 +7,12 @@
* Fail: $_SERVER['ip']
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_Usage_SuperGlobalsUsageSniff implements
PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+namespace MediaWiki\Sniffs\Usage;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class SuperGlobalsUsageSniff implements Sniff {
// The list of forbidden superglobals
// As per
https://www.mediawiki.org/wiki/Manual:Coding_conventions/PHP#Global_objects
@@ -25,11 +28,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile The PHP_CodeSniffer_File
object.
+ * @param File $phpcsFile The File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$currentToken = $tokens[$stackPtr];
if ( isset( self::$forbiddenList[$currentToken['content']] )
=== true ) {
diff --git a/MediaWiki/Sniffs/VariableAnalysis/UnusedGlobalVariablesSniff.php
b/MediaWiki/Sniffs/VariableAnalysis/UnusedGlobalVariablesSniff.php
index dc98ed2..3d7978e 100644
--- a/MediaWiki/Sniffs/VariableAnalysis/UnusedGlobalVariablesSniff.php
+++ b/MediaWiki/Sniffs/VariableAnalysis/UnusedGlobalVariablesSniff.php
@@ -3,10 +3,16 @@
* Detect unused MediaWiki global variable.
* Unused global variables should be removed.
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_VariableAnalysis_UnusedGlobalVariablesSniff
- implements PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+
+namespace MediaWiki\Sniffs\VariableAnalysis;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+use PHP_CodeSniffer\Util\Tokens;
+use RecursiveArrayIterator;
+use RecursiveIteratorIterator;
+
+class UnusedGlobalVariablesSniff implements Sniff {
/**
* @return array
@@ -16,11 +22,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
if ( !isset( $tokens[$stackPtr]['scope_opener'] ) ) {
// An interface or abstract function which doesn't have
a body
@@ -36,7 +42,7 @@
$strVariables = [];
for ( $i = $scopeOpener; $i < $scopeCloser; $i++ ) {
- if ( array_key_exists( $tokens[$i]['type'],
PHP_CodeSniffer_Tokens::$emptyTokens ) ) {
+ if ( array_key_exists( $tokens[$i]['type'],
Tokens::$emptyTokens ) ) {
continue;
}
if ( $tokens[$i]['type'] === 'T_GLOBAL' ) {
@@ -63,7 +69,11 @@
if ( !array_key_exists( $global[0], $otherVariables )
&& !in_array( $global[0], $strVariables )
) {
- $phpcsFile->addWarning( 'Global ' . $global[0]
.' is never used.', $global[1] );
+ $phpcsFile->addWarning(
+ 'Global ' . $global[0] .' is never
used.',
+ $global[1],
+ 'UnusedGlobal' . $global[0]
+ );
}
}
}
diff --git a/MediaWiki/Sniffs/WhiteSpace/DisallowEmptyLineFunctionsSniff.php
b/MediaWiki/Sniffs/WhiteSpace/DisallowEmptyLineFunctionsSniff.php
index 9f892ee..2c33eec 100644
--- a/MediaWiki/Sniffs/WhiteSpace/DisallowEmptyLineFunctionsSniff.php
+++ b/MediaWiki/Sniffs/WhiteSpace/DisallowEmptyLineFunctionsSniff.php
@@ -2,10 +2,13 @@
/**
* Disallow empty line at the begin of function.
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_WhiteSpace_DisallowEmptyLineFunctionsSniff
- implements PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+
+namespace MediaWiki\Sniffs\WhiteSpace;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class DisallowEmptyLineFunctionsSniff implements Sniff {
/**
* @return array
@@ -17,11 +20,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$current = $tokens[$stackPtr];
if ( isset( $current['scope_opener'] ) === false ||
diff --git a/MediaWiki/Sniffs/WhiteSpace/MultipleEmptyLinesSniff.php
b/MediaWiki/Sniffs/WhiteSpace/MultipleEmptyLinesSniff.php
index f81813c..709aebf 100644
--- a/MediaWiki/Sniffs/WhiteSpace/MultipleEmptyLinesSniff.php
+++ b/MediaWiki/Sniffs/WhiteSpace/MultipleEmptyLinesSniff.php
@@ -2,9 +2,14 @@
/**
* Check multiple consecutive newlines in a file.
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_WhiteSpace_MultipleEmptyLinesSniff
- implements PHP_CodeSniffer_Sniff {
+
+namespace MediaWiki\Sniffs\WhiteSpace;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class MultipleEmptyLinesSniff
+ implements Sniff {
// @codingStandardsIgnoreEnd
/**
@@ -17,11 +22,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
if ( $stackPtr > 2
diff --git a/MediaWiki/Sniffs/WhiteSpace/SpaceAfterControlStructureSniff.php
b/MediaWiki/Sniffs/WhiteSpace/SpaceAfterControlStructureSniff.php
index fd299de..65fe3c6 100644
--- a/MediaWiki/Sniffs/WhiteSpace/SpaceAfterControlStructureSniff.php
+++ b/MediaWiki/Sniffs/WhiteSpace/SpaceAfterControlStructureSniff.php
@@ -2,10 +2,14 @@
/**
* Verify specific control structures are followed by a single space.
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_WhiteSpace_SpaceAfterControlStructureSniff
- implements PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+
+namespace MediaWiki\Sniffs\WhiteSpace;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class SpaceAfterControlStructureSniff
+ implements Sniff {
/**
* @return array
@@ -24,11 +28,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$nextToken = $tokens[$stackPtr + 1];
if ( $nextToken['code'] !== T_WHITESPACE ||
$nextToken['content'] !== ' ' ) {
diff --git a/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeClassBraceSniff.php
b/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeClassBraceSniff.php
index a126ab6..1bc82ca 100644
--- a/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeClassBraceSniff.php
+++ b/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeClassBraceSniff.php
@@ -6,10 +6,13 @@
* fail: class TestClass {
* pass: class TestClass {
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_WhiteSpace_SpaceBeforeClassBraceSniff
- implements PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+
+namespace MediaWiki\Sniffs\WhiteSpace;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class SpaceBeforeClassBraceSniff implements Sniff {
/**
* @return array
*/
@@ -22,11 +25,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The index of current token.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
if ( $tokens[$stackPtr]['scope_opener'] === false ) {
return;
diff --git
a/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeControlStructureBraceSniff.php
b/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeControlStructureBraceSniff.php
index 0523c24..a7a0a9c 100644
--- a/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeControlStructureBraceSniff.php
+++ b/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeControlStructureBraceSniff.php
@@ -8,9 +8,13 @@
* pass: if ( $a == 1 ) {
* pass: switch ( $a ) {
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_WhiteSpace_SpaceBeforeControlStructureBraceSniff
- implements PHP_CodeSniffer_Sniff {
+
+namespace MediaWiki\Sniffs\WhiteSpace;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class SpaceBeforeControlStructureBraceSniff implements Sniff {
// @codingStandardsIgnoreEnd
/**
* @return array
@@ -27,11 +31,11 @@
];
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The index of current token.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
if ( !isset( $tokens[$stackPtr]['scope_opener'] ) ||
$tokens[$stackPtr]['scope_opener'] === false ) {
@@ -65,13 +69,13 @@
/**
* Process The close parenthesis on the same line as open brace.
*
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $openBrace The index of open brace.
* @param int $closeBracket The index of close bracket.
* @param int $stackPtr The index of current token.
* @return void
*/
- protected function processLineDiff( PHP_CodeSniffer_File $phpcsFile,
$openBrace,
+ protected function processLineDiff( File $phpcsFile, $openBrace,
$closeBracket, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$phpcsFile->recordMetric( $stackPtr, 'Control Structs opening
brace placement', 'new line' );
@@ -93,13 +97,13 @@
/**
* Process The close parenthesis on the different line with open brace.
*
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $openBrace The index of open brace.
* @param int $closeBracket The index of close bracket.
* @param int $stackPtr The index of current token.
* @return void
*/
- protected function processLineSame( PHP_CodeSniffer_File $phpcsFile,
$openBrace,
+ protected function processLineSame( File $phpcsFile, $openBrace,
$closeBracket, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$content = $phpcsFile->getTokensAsString( $closeBracket + 1,
$openBrace - $closeBracket - 1 );
@@ -124,12 +128,12 @@
/**
* Process empty line after the open brace.
*
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $openBrace The index of open brace.
* @param int $stackPtr The index of current token.
* @return void
*/
- protected function processEmptyLine( PHP_CodeSniffer_File $phpcsFile,
$openBrace, $stackPtr ) {
+ protected function processEmptyLine( File $phpcsFile, $openBrace,
$stackPtr ) {
$tokens = $phpcsFile->getTokens();
$next = $phpcsFile->findNext( T_WHITESPACE, $openBrace + 2,
null, false );
$found = strpos( $tokens[$next]['content'], $phpcsFile->eolChar
);
diff --git a/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeSingleLineCommentSniff.php
b/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeSingleLineCommentSniff.php
index ec28776..2e32476 100644
--- a/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeSingleLineCommentSniff.php
+++ b/MediaWiki/Sniffs/WhiteSpace/SpaceBeforeSingleLineCommentSniff.php
@@ -2,10 +2,13 @@
/**
* Verify comments are preceeded by a single space.
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_WhiteSpace_SpaceBeforeSingleLineCommentSniff
- implements PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+
+namespace MediaWiki\Sniffs\WhiteSpace;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class SpaceBeforeSingleLineCommentSniff implements Sniff {
/**
* @return array
@@ -17,11 +20,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$currToken = $tokens[$stackPtr];
$preToken = $phpcsFile->findPrevious( T_WHITESPACE,
$stackPtr-1, null, true );
diff --git a/MediaWiki/Sniffs/WhiteSpace/SpaceyParenthesisSniff.php
b/MediaWiki/Sniffs/WhiteSpace/SpaceyParenthesisSniff.php
index d0ba31c..958ac6e 100644
--- a/MediaWiki/Sniffs/WhiteSpace/SpaceyParenthesisSniff.php
+++ b/MediaWiki/Sniffs/WhiteSpace/SpaceyParenthesisSniff.php
@@ -8,10 +8,13 @@
*
* Also disallow wfFoo( ) and wfFoo( $param )
*/
-// @codingStandardsIgnoreStart
-class MediaWiki_Sniffs_WhiteSpace_SpaceyParenthesisSniff
- implements PHP_CodeSniffer_Sniff {
- // @codingStandardsIgnoreEnd
+
+namespace MediaWiki\Sniffs\WhiteSpace;
+
+use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Sniffs\Sniff;
+
+class SpaceyParenthesisSniff implements Sniff {
/**
* @return array
@@ -53,11 +56,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
+ public function process( File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$currentToken = $tokens[$stackPtr];
@@ -119,11 +122,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- protected function processOpenParenthesis( PHP_CodeSniffer_File
$phpcsFile, $stackPtr ) {
+ protected function processOpenParenthesis( File $phpcsFile, $stackPtr )
{
$tokens = $phpcsFile->getTokens();
$nextToken = $tokens[$stackPtr + 1];
// No space or not single space
@@ -149,11 +152,11 @@
}
/**
- * @param PHP_CodeSniffer_File $phpcsFile PHP_CodeSniffer_File object.
+ * @param File $phpcsFile File object.
* @param int $stackPtr The current token index.
* @return void
*/
- protected function processCloseParenthesis( PHP_CodeSniffer_File
$phpcsFile, $stackPtr ) {
+ protected function processCloseParenthesis( File $phpcsFile, $stackPtr
) {
$tokens = $phpcsFile->getTokens();
$previousToken = $tokens[$stackPtr - 1];
diff --git a/MediaWiki/Tests/MediaWikiStandardTest.php
b/MediaWiki/Tests/MediaWikiStandardTest.php
index 52915e0..aff79b4 100644
--- a/MediaWiki/Tests/MediaWikiStandardTest.php
+++ b/MediaWiki/Tests/MediaWikiStandardTest.php
@@ -23,10 +23,12 @@
* - Rename appropriatly
* - Adapt $this->helper->runPhpCs call to pass second parameter $standard
*/
+use MediaWiki\Sniffs\Tests\MediaWikiTestHelper;
+
class MediaWikiStandardTest extends PHPUnit_Framework_TestCase {
/**
- * @var TestHelper
+ * @var MediaWikiTestHelper
*/
private $helper;
@@ -126,6 +128,8 @@
*/
private function prepareOutput( $outputStr ) {
if ( $outputStr ) {
+ // Remove colors
+ $outputStr = preg_replace( '`\033\[[0-9;]+m`', '',
$outputStr );
$outputLines = explode( "\n", $outputStr );
// Remove lines that are empty or all dashes:
$outputLines = preg_grep( '/^-*$/', $outputLines,
PREG_GREP_INVERT );
diff --git a/MediaWiki/Tests/MediaWikiTestHelper.php
b/MediaWiki/Tests/MediaWikiTestHelper.php
index 9491d6d..53e8601 100644
--- a/MediaWiki/Tests/MediaWikiTestHelper.php
+++ b/MediaWiki/Tests/MediaWikiTestHelper.php
@@ -1,15 +1,12 @@
<?php
-use org\bovigo\vfs\vfsStream;
+namespace MediaWiki\Sniffs\Tests;
+
+use PHP_CodeSniffer\Config;
+use PHP_CodeSniffer\Files\DummyFile;
+use PHP_CodeSniffer\Ruleset;
class MediaWikiTestHelper extends TestHelper {
- /**
- * @return void
- */
- public function __construct() {
- parent::__construct();
- $this->vfsRoot = vfsStream::setup( 'root' );
- }
/**
* @param string $file The path of file.
@@ -20,56 +17,20 @@
if ( empty( $standard ) ) {
$standard = $this->rootDir . '/ruleset.xml';
}
- $defaults = $this->phpcs->getDefaults();
+ $config = new Config();
+ $config->standards = [ $standard ];
+ $config->files = [ $file ];
+ $config->encoding = 'utf-8';
- if (
- defined( 'PHP_CodeSniffer::VERSION' ) &&
- version_compare( PHP_CodeSniffer::VERSION, '1.5.0' ) !=
-1
- ) {
- $standard = [ $standard ];
- }
- $options = [
- 'encoding' => 'utf-8',
- 'files' => [ $file ],
- 'standard' => $standard,
- 'reports' => [ 'diff' => vfsStream::url(
'root/phpcbf-fixed.diff' ) ]
- ] + $defaults;
+ $ruleset = new Ruleset( $config );
+ $dummy = new DummyFile( file_get_contents( $file ), $ruleset,
$config );
- ob_start();
- $this->phpcs->process( $options );
- ob_end_clean();
-
- if ( !$this->vfsRoot->hasChild( 'phpcbf-fixed.diff' ) ) {
- // no diff generated, return source file
+ $dummy->process();
+ if ( $dummy->getFixableCount() ) {
+ $dummy->fixer->fixFile();
+ return $dummy->fixer->getContents();
+ } else {
return file_get_contents( $file );
}
-
- $diff = $this->vfsRoot->getChild( 'phpcbf-fixed.diff'
)->getContent();
- if ( empty( trim( $diff ) ) ) {
- return file_get_contents( $file );
- }
-
- // patch the source file and output to stdout
- $cmd = "patch -p0 -u -o -";
- $descriptorSpec = [
- 0 => [ 'pipe', 'r' ],
- 1 => [ 'pipe', 'w' ],
- 2 => [ 'file', '/dev/null', 'w' ],
- ];
- $process = proc_open( $cmd, $descriptorSpec, $pipes );
- if ( !$process ) {
- throw new RuntimeException( "Failed to run $cmd" );
- }
-
- fwrite( $pipes[0], $diff );
- fclose( $pipes[0] );
-
- $output = stream_get_contents( $pipes[1] );
- fclose( $pipes[1] );
-
- $retval = proc_close( $process );
-
- // test retval?
- return $output;
}
}
diff --git a/TestHelper.php b/TestHelper.php
index 9d33f08..c7c5d33 100644
--- a/TestHelper.php
+++ b/TestHelper.php
@@ -23,6 +23,13 @@
* - runPhpCs takes a second parameter $standard to override the default
*/
+namespace MediaWiki\Sniffs\Tests;
+
+use PHP_CodeSniffer\Config;
+use PHP_CodeSniffer\Files\DummyFile;
+use PHP_CodeSniffer\Reporter;
+use PHP_CodeSniffer\Ruleset;
+
class TestHelper {
protected $rootDir;
@@ -31,13 +38,9 @@
protected $phpcs;
- /**
- * @return void
- */
public function __construct() {
$this->rootDir = dirname( __DIR__ );
$this->dirName = basename( $this->rootDir );
- $this->phpcs = new PHP_CodeSniffer_CLI();
}
/**
@@ -51,22 +54,21 @@
if ( empty( $standard ) ) {
$standard = $this->rootDir . '/ruleset.xml';
}
- $defaults = $this->phpcs->getDefaults();
- if (
- defined( 'PHP_CodeSniffer::VERSION' ) &&
- version_compare( PHP_CodeSniffer::VERSION, '1.5.0' ) !=
-1
- ) {
- $standard = [ $standard ];
- }
- $options = [
- 'encoding' => 'utf-8',
- 'files' => [ $file ],
- 'standard' => $standard,
- ] + $defaults;
+ $config = new Config();
+ $config->standards = [ $standard ];
+ $config->files = [ $file ];
+ $config->encoding = 'utf-8';
+ $config->reports = [ 'full' => null ];
+ $config->colors = false;
+ $ruleset = new Ruleset( $config );
+ $dummy = new DummyFile( file_get_contents( $file ), $ruleset,
$config );
+ $reporter = new Reporter( $config );
+ $dummy->process();
+ $reporter->cacheFileReport( $dummy );
ob_start();
- $this->phpcs->process( $options );
+ $reporter->printReport( 'full' );
$result = ob_get_contents();
ob_end_clean();
return $result;
diff --git a/composer.json b/composer.json
index 5f3e19e..dc523a9 100644
--- a/composer.json
+++ b/composer.json
@@ -6,18 +6,18 @@
"license": "GPL-2.0+",
"require": {
"php": ">= 5.5.9",
- "squizlabs/php_codesniffer": "2.9.0"
+ "squizlabs/php_codesniffer": "3.0.0"
},
"require-dev": {
"jakub-onderka/php-parallel-lint": "0.9.*",
- "phpunit/phpunit": "~4.1",
- "mikey179/vfsStream": "~1.6"
+ "phpunit/phpunit": "~4.1"
},
"scripts": {
"test": [
"parallel-lint . --exclude vendor",
"phpunit $PHPUNIT_ARGS",
"phpcs -p -s"
- ]
+ ],
+ "fix": "phpcbf"
}
}
diff --git a/phpunit.bootstrap.php b/phpunit.bootstrap.php
index 63d2aa3..9cdf9da 100644
--- a/phpunit.bootstrap.php
+++ b/phpunit.bootstrap.php
@@ -2,5 +2,23 @@
require_once __DIR__ .'/vendor/autoload.php';
+require_once __DIR__ . '/vendor/squizlabs/php_codesniffer/autoload.php';
+
// Load Test Helper
require_once __DIR__ . '/TestHelper.php';
+require_once __DIR__ . '/MediaWiki/Tests/MediaWikiTestHelper.php';
+
+// Trigger autoload of tokens
+new PHP_CodeSniffer\Util\Tokens();
+
+if ( !defined( 'PHP_CODESNIFFER_IN_TESTS' ) ) {
+ define( 'PHP_CODESNIFFER_IN_TESTS', true );
+}
+
+if ( !defined( 'PHP_CODESNIFFER_CBF' ) ) {
+ define( 'PHP_CODESNIFFER_CBF', false );
+}
+
+if ( !defined( 'PHP_CODESNIFFER_VERBOSITY' ) ) {
+ define( 'PHP_CODESNIFFER_VERBOSITY', false );
+}
--
To view, visit https://gerrit.wikimedia.org/r/355067
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I6a934e15fd85aec31b9070c9fbaa34cadd763296
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/tools/codesniffer
Gerrit-Branch: master
Gerrit-Owner: Legoktm <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Dereckson <[email protected]>
Gerrit-Reviewer: Hashar <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: Paladox <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits