Legoktm has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/398621 )

Change subject: Ignore maintenance scripts in ClassMatchesFilenameSniff
......................................................................

Ignore maintenance scripts in ClassMatchesFilenameSniff

Change-Id: I78f03a028539e0313f96534490bf4fcda19160a8
---
M MediaWiki/Sniffs/Files/ClassMatchesFilenameSniff.php
1 file changed, 29 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/tools/codesniffer 
refs/changes/21/398621/1

diff --git a/MediaWiki/Sniffs/Files/ClassMatchesFilenameSniff.php 
b/MediaWiki/Sniffs/Files/ClassMatchesFilenameSniff.php
index dea4edf..5b71417 100644
--- a/MediaWiki/Sniffs/Files/ClassMatchesFilenameSniff.php
+++ b/MediaWiki/Sniffs/Files/ClassMatchesFilenameSniff.php
@@ -50,6 +50,16 @@
                $name = $phpcsFile->getDeclarationName( $stackPtr );
                if ( $base !== "$name.php" ) {
                        $wrongCase = strtolower( $base ) === strtolower( 
"$name.php" );
+                       if ( $wrongCase && $this->isMaintenanceScript( 
$phpcsFile ) ) {
+                               // Maintenance scripts follow the class name, 
but the first
+                               // letter is lowercase.
+                               $expected = $name;
+                               $expected[0] = strtolower( $expected[0] );
+                               if ( $base === "$expected.php" ) {
+                                       // OK!
+                                       return;
+                               }
+                       }
                        $phpcsFile->addError(
                                "Class name '$name' does not match filename 
'$base'",
                                $stackPtr,
@@ -58,4 +68,23 @@
                }
        }
 
+       /**
+        * Figure out whether the file is a MediaWiki maintenance script
+        *
+        * @param File $phpcsFile File being checked
+        *
+        * @return bool
+        */
+       private function isMaintenanceScript( File $phpcsFile ) {
+               foreach ( $phpcsFile->getTokens() as $token ) {
+                       if ( $token['code'] === T_STRING
+                               && $token['content'] === 
'RUN_MAINTENANCE_IF_MAIN'
+                       ) {
+                               return true;
+                       }
+               }
+
+               return false;
+       }
+
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/398621
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I78f03a028539e0313f96534490bf4fcda19160a8
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/tools/codesniffer
Gerrit-Branch: master
Gerrit-Owner: Legoktm <lego...@member.fsf.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to