Re-enable Generic.Files.OneObjectStructurePerFile sniff
authorKunal Mehta <legoktm@member.fsf.org>
Mon, 7 May 2018 08:53:28 +0000 (01:53 -0700)
committerKunal Mehta <legoktm@member.fsf.org>
Sat, 19 May 2018 20:31:14 +0000 (13:31 -0700)
Whitelist existing violations in .phpcs.xml, and enable the sniff to
prevent people from accidentally introducing new violations.

languages/ is blanket exempted since languages that have language
converters tend to have two classes in one file.

tests/ is also blanket exempted since many tests create mock classes,
and we don't care about PSR-4 compliance in tests.

Change-Id: I56be2f23bae3e24c062198b766cb48edab5e395e

.phpcs.xml

index d43a281..616fa23 100644 (file)
@@ -20,7 +20,6 @@
                <exclude name="MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals" />
                <exclude name="MediaWiki.Files.ClassMatchesFilename.WrongCase" />
                <exclude name="MediaWiki.Files.ClassMatchesFilename.NotMatch" />
-               <exclude name="Generic.Files.OneObjectStructurePerFile.MultipleFound" />
                <exclude name="MediaWiki.VariableAnalysis.ForbiddenGlobalVariables.ForbiddenGlobal$wgTitle" />
                <exclude name="MediaWiki.Commenting.FunctionComment.SpacingDocStar" />
                <exclude name="MediaWiki.Commenting.FunctionComment.SpacingDocTag" />
        <rule ref="Generic.Files.LineLength">
                <exclude-pattern>*/languages/messages/Messages*\.php</exclude-pattern>
        </rule>
+       <rule ref="Generic.Files.OneObjectStructurePerFile.MultipleFound">
+               <!--
+                       Whitelist existing violations, but enable the sniff to prevent
+                       any new occurrences.
+               -->
+               <exclude-pattern>*/includes/actions/HistoryAction\.php</exclude-pattern>
+               <exclude-pattern>*/includes/api/ApiErrorFormatter\.php</exclude-pattern>
+               <exclude-pattern>*/includes/api/ApiImport\.php</exclude-pattern>
+               <exclude-pattern>*/includes/api/ApiMessage\.php</exclude-pattern>
+               <exclude-pattern>*/includes/api/ApiOpenSearch\.php</exclude-pattern>
+               <exclude-pattern>*/includes/api/ApiRsd\.php</exclude-pattern>
+               <exclude-pattern>*/includes/api/ApiUsageException\.php</exclude-pattern>
+               <exclude-pattern>*/includes/auth/AuthManagerAuthPlugin\.php</exclude-pattern>
+               <exclude-pattern>*/includes/AuthPlugin\.php</exclude-pattern>
+               <exclude-pattern>*/includes/cache/CacheDependency\.php</exclude-pattern>
+               <exclude-pattern>*/includes/cache/CacheHelper\.php</exclude-pattern>
+               <exclude-pattern>*/includes/deferred/CdnCacheUpdate\.php</exclude-pattern>
+               <exclude-pattern>*/includes/diff/DairikiDiff\.php</exclude-pattern>
+               <exclude-pattern>*/includes/diff/DiffEngine\.php</exclude-pattern>
+               <exclude-pattern>*/includes/exception/LocalizedException\.php</exclude-pattern>
+               <exclude-pattern>*/includes/Feed\.php</exclude-pattern>
+               <exclude-pattern>*/includes/filerepo/file/LocalFile\.php</exclude-pattern>
+               <exclude-pattern>*/includes/gallery/PackedOverlayImageGallery\.php</exclude-pattern>
+               <exclude-pattern>*/includes/HistoryBlob\.php</exclude-pattern>
+               <exclude-pattern>*/includes/htmlform/HTMLFormElement\.php</exclude-pattern>
+               <exclude-pattern>*/includes/jobqueue/aggregator/JobQueueAggregator\.php</exclude-pattern>
+               <exclude-pattern>*/includes/jobqueue/JobQueue\.php</exclude-pattern>
+               <exclude-pattern>*/includes/jobqueue/JobSpecification\.php</exclude-pattern>
+               <exclude-pattern>*/includes/libs/filebackend/FileBackendStore\.php</exclude-pattern>
+               <exclude-pattern>*/includes/libs/filebackend/FSFileBackend\.php</exclude-pattern>
+               <exclude-pattern>*/includes/libs/filebackend/SwiftFileBackend\.php</exclude-pattern>
+               <exclude-pattern>*/includes/logging/LogEntry\.php</exclude-pattern>
+               <exclude-pattern>*/includes/logging/LogFormatter\.php</exclude-pattern>
+               <exclude-pattern>*/includes/media/MediaTransformOutput\.php</exclude-pattern>
+               <exclude-pattern>*/includes/media/SVGMetadataExtractor\.php</exclude-pattern>
+               <exclude-pattern>*/includes/parser/Preprocessor_DOM\.php</exclude-pattern>
+               <exclude-pattern>*/includes/parser/Preprocessor_Hash\.php</exclude-pattern>
+               <exclude-pattern>*/includes/parser/Preprocessor\.php</exclude-pattern>
+               <exclude-pattern>*/includes/PathRouter\.php</exclude-pattern>
+               <exclude-pattern>*/includes/poolcounter/PoolCounter\.php</exclude-pattern>
+               <exclude-pattern>*/includes/PrefixSearch\.php</exclude-pattern>
+               <exclude-pattern>*/includes/profiler/SectionProfiler\.php</exclude-pattern>
+               <exclude-pattern>*/includes/RevisionList\.php</exclude-pattern>
+               <exclude-pattern>*/includes/search/SearchEngine\.php</exclude-pattern>
+               <exclude-pattern>*/includes/specialpage/LoginSignupSpecialPage\.php</exclude-pattern>
+               <exclude-pattern>*/includes/specialpage/RedirectSpecialPage\.php</exclude-pattern>
+               <exclude-pattern>*/includes/specials/SpecialListusers\.php</exclude-pattern>
+               <exclude-pattern>*/includes/specials/SpecialMyRedirectPages\.php</exclude-pattern>
+               <exclude-pattern>*/includes/specials/SpecialUploadStash\.php</exclude-pattern>
+               <exclude-pattern>*/includes/StubObject\.php</exclude-pattern>
+               <exclude-pattern>*/includes/upload/UploadFromChunks\.php</exclude-pattern>
+               <exclude-pattern>*/includes/upload/UploadStash\.php</exclude-pattern>
+               <exclude-pattern>*/includes/utils/AutoloadGenerator\.php</exclude-pattern>
+               <exclude-pattern>*/includes/WebResponse\.php</exclude-pattern>
+               <exclude-pattern>*/maintenance/dumpIterator\.php</exclude-pattern>
+               <exclude-pattern>*/maintenance/Maintenance\.php</exclude-pattern>
+               <exclude-pattern>*/maintenance/findDeprecated\.php</exclude-pattern>
+               <exclude-pattern>*/maintenance/storage/recompressTracked\.php</exclude-pattern>
+               <exclude-pattern>*/maintenance/preprocessorFuzzTest\.php</exclude-pattern>
+               <exclude-pattern>*/maintenance/language/languages.inc</exclude-pattern>
+               <exclude-pattern>*/maintenance/language/StatOutputs\.php</exclude-pattern>
+               <exclude-pattern>*/maintenance/language/checkLanguage.inc</exclude-pattern>
+               <exclude-pattern>*/maintenance/language/generateCollationData\.php</exclude-pattern>
+               <exclude-pattern>*/maintenance/term/MWTerm\.php</exclude-pattern>
+               <!-- Language converters use the pattern of 2 classes in one file -->
+               <exclude-pattern>*/languages/*\.php</exclude-pattern>
+               <!-- We don't care that much about violations in tests -->
+               <exclude-pattern>*/tests/*\.php</exclude-pattern>
+       </rule>
        <rule ref="PSR2.Methods.MethodDeclaration.Underscore">
                <exclude-pattern>*/includes/StubObject\.php</exclude-pattern>
        </rule>