From 9e95cf075b817ac128f199690976551ccb6f56b0 Mon Sep 17 00:00:00 2001 From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org> Date: Fri, 13 Dec 2024 07:46:37 +0000 Subject: [PATCH] build: Updating dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit composer: * mediawiki/mediawiki-codesniffer: dev-master#fd6ecb5ffbe353507ca05387176db02f0f41f6fe → 45.0.0 The following sniffs are failing and were disabled: * Generic.Files.LineLength.TooLong * MediaWiki.Arrays.AlphabeticArraySort.Duplicate The following sniffs now pass and were enabled: * MediaWiki.Usage.StaticClosure.StaticClosure * mediawiki/mediawiki-phan-config: 0.14.0 → 0.15.0 npm: * mocha: 10.2.0, ^10.2.0 → 10.8.2, ^10.2.0 * https://github.com/advisories/GHSA-mwcw-c2x4-8c55 * nanoid: 3.3.3, 3.3.7 → 3.3.8 * https://github.com/advisories/GHSA-mwcw-c2x4-8c55 Change-Id: Id8756f1d35a2472d348c9b4220186dc68469871e --- .phpcs.xml | 3 +- client/WikibaseClient.ServiceWiring.php | 158 ++++---- client/WikibaseClient.datatypes.php | 30 +- client/WikibaseClient.entitytypes.php | 4 +- client/config/WikibaseClient.default.php | 28 +- client/includes/Api/PageTerms.php | 2 +- client/includes/ClientHooks.php | 2 +- .../DataAccessSnakFormatterFactory.php | 2 +- .../DataBridgeResourceLoaderModules.php | 2 +- .../Hooks/DescriptionProviderHookHandler.php | 2 +- .../includes/Hooks/ExtensionLoadHandler.php | 2 +- .../LoadExtensionSchemaUpdatesHookHandler.php | 2 +- .../Hooks/ParserFunctionRegistrant.php | 4 +- .../includes/Serializer/ClientSerializer.php | 2 +- .../Specials/SpecialPagesWithBadges.php | 2 +- client/includes/Store/AddUsagesForPageJob.php | 4 +- client/includes/Store/DescriptionLookup.php | 6 +- .../Store/Sql/PagePropsEntityIdLookup.php | 2 +- .../includes/Usage/Sql/EntityUsageTable.php | 2 +- .../Usage/Sql/SqlSubscriptionManager.php | 2 +- .../Sql/SqlUsageTrackerSchemaUpdater.php | 2 +- client/includes/Usage/UsageDeduplicator.php | 2 +- .../RecentChangesModificationTestBase.php | 2 +- .../Changes/AffectedPagesFinderTest.php | 2 +- .../includes/Changes/ChangeHandlerTest.php | 8 +- .../Changes/ChangeRunCoalescerTest.php | 2 +- .../includes/Changes/WikiPageUpdaterTest.php | 2 +- ...ikibaseLibraryInProcessEntityCacheTest.php | 2 +- .../Scribunto/WikibaseLibraryTestCase.php | 4 +- ...WikitextPreprocessingSnakFormatterTest.php | 2 +- .../integration/includes/DescriptionTest.php | 2 +- .../Hooks/ChangesListLinesHandlerTest.php | 2 +- .../includes/Hooks/LangLinkHandlerTest.php | 2 +- .../includes/Hooks/SidebarHookHandlerTest.php | 2 +- .../includes/NamespaceCheckerTest.php | 4 +- .../Specials/SpecialPagesWithBadgesTest.php | 2 +- .../UnexpectedUnconnectedPagePrimerTest.php | 2 +- .../Usage/Sql/EntityUsageTableTest.php | 2 +- .../Usage/UsageLookupContractTester.php | 2 +- .../Usage/UsageTrackerContractTester.php | 2 +- .../Usage/UsageTrackingIntegrationTest.php | 2 +- .../Usage/UsageAccumulatorContractTester.php | 2 +- .../Changes/InjectRCRecordsJobTest.php | 6 +- .../ClientSiteLinkTitleLookupTest.php | 2 +- .../DataAccessSnakFormatterFactoryTest.php | 2 +- .../LanguageAwareRendererTest.php | 4 +- .../StatementGroupRendererFactoryTest.php | 4 +- .../VariantsAwareRendererTest.php | 2 +- .../CachingFallbackBasedTermLookupTest.php | 6 +- .../Scribunto/LuaFunctionCallTrackerTest.php | 2 +- .../SnakSerializationRendererTest.php | 2 +- .../StatementTransclusionInteractorTest.php | 6 +- .../Hooks/EditActionHookHandlerTest.php | 6 +- .../Hooks/ExtensionLoadHandlerTest.php | 2 +- .../Hooks/InfoActionHookHandlerTest.php | 4 +- .../Hooks/LanguageLinkBadgeDisplayTest.php | 2 +- .../Hooks/SiteLinksForDisplayLookupTest.php | 2 +- .../Hooks/SkinAfterPortletHandlerTest.php | 2 +- .../ServiceWiring/DataTypeDefinitionsTest.php | 2 +- .../ServiceWiring/DataTypeFactoryTest.php | 2 +- .../DataValueDeserializerTest.php | 2 +- .../ServiceWiring/EntityDifferTest.php | 4 +- .../ServiceWiring/EntityIdComposerTest.php | 2 +- .../ServiceWiring/EntityIdParserTest.php | 2 +- .../EntityNamespaceLookupTest.php | 2 +- .../EntityTypeDefinitionsTest.php | 2 +- .../WikibaseContentLanguagesTest.php | 2 +- .../includes/Store/DescriptionLookupTest.php | 12 +- .../Usage/UsageTrackingSnakFormatterTest.php | 2 +- composer.json | 4 +- .../src/ByTypeDispatchingEntityIdLookup.php | 2 +- .../ByTypeDispatchingEntityIdLookupTest.php | 4 +- ...ypeDispatchingEntityRevisionLookupTest.php | 2 +- ...peDispatchingPrefetchingTermLookupTest.php | 20 +- lib/WikibaseLib.entitytypes.php | 24 +- lib/includes/DataTypeDefinitions.php | 2 +- .../Formatters/AutoCommentFormatter.php | 2 +- lib/includes/LanguageFallbackChainFactory.php | 2 +- .../Serialization/CallbackFactory.php | 4 +- .../CacheRetrievingEntityRevisionLookup.php | 4 +- .../RedirectResolvingLatestRevisionLookup.php | 6 +- .../Store/RevisionBasedEntityLookup.php | 6 +- ...evisionBasedEntityRedirectTargetLookup.php | 4 +- lib/includes/Store/Sql/SiteLinkTable.php | 2 +- .../Terms/DatabaseTermInLangIdsAcquirer.php | 6 +- .../ReplicaPrimaryAwareRecordIdsAcquirer.php | 2 +- .../Sql/WikiPageEntityMetaDataLookup.php | 2 +- .../wikibase/changes/src/EntityChange.php | 2 +- .../changes/tests/EntityChangeTest.php | 4 +- .../wikibase/changes/tests/ItemChangeTest.php | 4 +- .../SnakValueDeserializerTest.php | 2 +- .../data-model/tests/unit/NewItem.php | 2 +- lib/resources/Resources.php | 6 +- lib/tests/phpunit/DataTypeDefinitionsTest.php | 2 +- lib/tests/phpunit/DataValueFactoryTest.php | 2 +- lib/tests/phpunit/EntityFactoryTest.php | 4 +- .../phpunit/EntityRevisionLookupTestCase.php | 4 +- lib/tests/phpunit/EntityTypesTest.php | 2 +- ...naryOptionDispatchingSnakFormatterTest.php | 2 +- .../DispatchingValueFormatterTest.php | 4 +- ...atterLabelDescriptionLookupFactoryTest.php | 6 +- .../GlobeCoordinateDetailsFormatterTest.php | 2 +- .../HtmlExternalIdentifierFormatterTest.php | 4 +- .../ItemPropertyIdHtmlLinkFormatterTest.php | 14 +- ...sProviderEntityIdHtmlLinkFormatterTest.php | 2 +- .../OutputFormatSnakFormatterFactoryTest.php | 6 +- .../OutputFormatValueFormatterFactoryTest.php | 6 +- .../PropertyValueSnakFormatterTest.php | 2 +- .../QuantityDetailsFormatterTest.php | 2 +- .../DataBridgeReferenceFormatterTest.php | 2 +- .../Formatters/VocabularyUriFormatterTest.php | 2 +- .../WikibaseValueFormatterBuildersTest.php | 10 +- ...ikitextExternalIdentifierFormatterTest.php | 4 +- ...atchingTermsLookupSearchInteractorTest.php | 8 +- .../LanguageFallbackChainFactoryTest.php | 4 +- .../phpunit/LanguageFallbackIndicatorTest.php | 2 +- lib/tests/phpunit/MockRepositoryTest.php | 2 +- .../phpunit/Modules/CurrentSiteModuleTest.php | 2 +- .../phpunit/Modules/DataTypesModuleTest.php | 6 +- lib/tests/phpunit/Modules/SitesModuleTest.php | 2 +- .../CommaSeparatedListTest.php | 2 +- .../Serialization/CallbackFactoryTest.php | 2 +- .../SerializationModifierTest.php | 10 +- .../ServiceBySourceAndTypeDispatcherTest.php | 2 +- .../phpunit/ServiceByTypeDispatcherTest.php | 2 +- lib/tests/phpunit/SimpleCacheTestCase.php | 8 +- ...eDispatchingPropertyDataTypeLookupTest.php | 4 +- .../StatsdRecordingSimpleCacheTest.php | 6 +- ...acheRetrievingEntityRevisionLookupTest.php | 2 +- .../Store/CachingEntityRevisionLookupTest.php | 2 +- .../EntityLinkTargetEntityIdLookupTest.php | 4 +- ...uageFallbackLabelDescriptionLookupTest.php | 4 +- .../Store/LatestRevisionIdResultTest.php | 12 +- .../Store/MatchingTermsLookupFactoryTest.php | 4 +- ...hingWikiPageEntityMetaDataAccessorTest.php | 2 +- .../Store/RevisionBasedEntityLookupTest.php | 2 +- .../Store/Sql/PropertyInfoTableTest.php | 2 +- .../DatabaseInnerTermStoreCleanerTest.php | 2 +- .../Terms/DatabaseMatchingTermsLookupTest.php | 4 +- .../DatabaseTermInLangIdsAcquirerTest.php | 4 +- ...tabaseTermStoreWriterTestGetTermsTrait.php | 6 +- .../TermInLangIdsResolverFactoryTest.php | 2 +- ...ypeDispatchingEntityRevisionLookupTest.php | 2 +- .../Store/TypeDispatchingEntityStoreTest.php | 2 +- .../phpunit/TermLanguageFallbackChainTest.php | 8 +- .../phpunit/WikibaseContentLanguagesTest.php | 2 +- lib/tests/phpunit/WikibaseSettingsTest.php | 4 +- package-lock.json | 329 +++++++---------- ...ratedProperties.OverrideEntityServices.php | 14 +- repo/WikibaseRepo.ServiceWiring.php | 342 +++++++++--------- repo/WikibaseRepo.datatypes.php | 106 +++--- repo/WikibaseRepo.entitytypes.php | 74 ++-- repo/config/Wikibase.default.php | 8 +- repo/config/Wikibase.example.php | 2 +- repo/config/Wikibase.searchindex.php | 2 +- repo/includes/Api/CreateClaim.php | 4 +- repo/includes/Api/EditEntity.php | 4 +- repo/includes/Api/EntityTerms.php | 2 +- repo/includes/Api/GetClaims.php | 4 +- repo/includes/Api/LinkTitles.php | 4 +- repo/includes/Api/ListSubscribers.php | 2 +- repo/includes/Api/MergeItems.php | 2 +- repo/includes/Api/ParseValue.php | 2 +- repo/includes/Api/RemoveClaims.php | 4 +- repo/includes/Api/RemoveQualifiers.php | 4 +- repo/includes/Api/RemoveReferences.php | 4 +- repo/includes/Api/ResultBuilder.php | 10 +- repo/includes/Api/SetAliases.php | 4 +- repo/includes/Api/SetClaim.php | 4 +- repo/includes/Api/SetClaimValue.php | 4 +- repo/includes/Api/SetQualifier.php | 6 +- repo/includes/Api/SetReference.php | 4 +- repo/includes/Api/SetSiteLink.php | 2 +- ...patchChangeModificationNotificationJob.php | 2 +- .../ChangeModification/DispatchChangesJob.php | 6 +- .../ChangeOp/ChangeOpValidationException.php | 2 +- repo/includes/ChangeOp/ChangeOps.php | 2 +- repo/includes/Dumpers/DumpGenerator.php | 2 +- .../EditEntity/MediaWikiEditEntity.php | 2 +- .../FederatedProperties/ApiEntityLookup.php | 2 +- ...ngEntityParserOutputGeneratorDecorator.php | 4 +- .../Formatters/EntityLinkFormatterFactory.php | 2 +- .../HtmlPageLinkRendererEndHookHandler.php | 2 +- .../MediaWikiLocalizedTextProvider.php | 2 +- repo/includes/Parsers/MwTimeIsoParser.php | 2 +- repo/includes/PropertyServices.php | 4 +- repo/includes/Rdf/RdfBuilder.php | 6 +- repo/includes/Rdf/RdfVocabulary.php | 4 +- repo/includes/RepoHooks.php | 12 +- .../ParameterizedDescriptionTrait.php | 2 +- .../Specials/SpecialAvailableBadges.php | 2 +- .../Specials/SpecialGoToLinkedPage.php | 2 +- repo/includes/Specials/SpecialItemByTitle.php | 2 +- .../Specials/SpecialItemDisambiguation.php | 2 +- .../Specials/SpecialListProperties.php | 2 +- repo/includes/Specials/SpecialMergeItems.php | 2 +- .../includes/Specials/SpecialModifyEntity.php | 2 +- .../Specials/SpecialRedirectEntity.php | 2 +- repo/includes/Specials/SpecialSetSiteLink.php | 4 +- .../Store/Sql/DatabaseSchemaUpdater.php | 6 +- repo/includes/SummaryFormatter.php | 2 +- repo/includes/WikibasePingback.php | 4 +- repo/maintenance/DumpEntities.php | 2 +- repo/maintenance/ResubmitChanges.php | 2 +- repo/maintenance/addUnitConversions.php | 2 +- repo/maintenance/searchEntities.php | 2 +- repo/maintenance/updateUnits.php | 2 +- repo/resources/Resources.php | 20 +- .../PatchItem/PatchedItemValidator.php | 2 +- ...ookupPropertyRevisionMetadataRetriever.php | 2 +- repo/rest-api/src/WbRestApi.ServiceWiring.php | 218 +++++------ .../CreatePropertyValidatorTest.php | 8 +- .../PatchItem/PatchedItemValidatorTest.php | 8 +- .../PatchedPropertyValidatorTest.php | 8 +- ...lsAndDescriptionsContentsValidatorTest.php | 8 +- .../Validation/StatementsValidatorTest.php | 2 +- .../EntityUpdaterItemUpdaterTest.php | 2 +- .../EntityUpdaterPropertyUpdaterTest.php | 2 +- ...erCreationResponseHeaderMiddlewareTest.php | 4 +- .../UnexpectedErrorHandlerMiddlewareTest.php | 4 +- .../includes/Actions/EditEntityActionTest.php | 2 +- .../Actions/HistoryEntityActionTest.php | 4 +- .../includes/Api/ApiJsonFormatTest.php | 2 +- .../includes/Api/CreateRedirectTest.php | 2 +- ...tyClearChangeOpValidateIntegrationTest.php | 4 +- .../includes/Api/EntitySavingHelperTest.php | 4 +- .../Api/EntityTermSearchHelperTest.php | 2 +- .../includes/Api/FormatSnakValueTest.php | 32 +- .../phpunit/includes/Api/MergeItemsTest.php | 8 +- .../includes/Api/RemoveQualifiersTest.php | 4 +- .../includes/Api/RemoveReferencesTest.php | 4 +- .../includes/Api/ResultBuilderTest.php | 6 +- .../includes/Api/SetClaimValueTest.php | 2 +- .../Api/StatementModificationHelperTest.php | 8 +- .../includes/Api/WikibaseApiTestCase.php | 2 +- ...ilderBasedDataTypeValidatorFactoryTest.php | 8 +- ...tchChangeVisibilityNotificationJobTest.php | 4 +- .../ChangeOp/ChangeOpTestMockProvider.php | 8 +- .../includes/ChangeOp/ChangeOpsMergeTest.php | 2 +- .../includes/ChangeOp/ChangeOpsTest.php | 6 +- .../AliasChangeOpDeserializationTester.php | 2 +- .../FingerprintChangeOpDeserializerTest.php | 2 +- ...adgeChangeOpSerializationValidatorTest.php | 10 +- .../SiteLinksChangeOpDeserializerTest.php | 12 +- .../ChangeOp/EntityChangeOpProviderTest.php | 8 +- .../ContentHandlerEntityIdLookupTest.php | 4 +- .../ContentHandlerEntityTitleLookupTest.php | 4 +- .../Content/DataUpdateAdapterTest.php | 4 +- .../Content/EntityContentFactoryTest.php | 4 +- .../Content/EntityContentTestCase.php | 2 +- .../includes/Content/ItemContentTest.php | 6 +- .../Diff/BasicEntityDiffVisualizerTest.php | 2 +- .../Diff/ClaimDifferenceVisualizerTest.php | 8 +- .../DispatchingEntityDiffVisualizerTest.php | 4 +- .../Diff/EntityDiffVisualizerFactoryTest.php | 6 +- .../includes/Diff/ItemDiffVisualizerTest.php | 2 +- .../Dumpers/JsonDataTypeInjectorTest.php | 2 +- .../Dumpers/JsonDumpGeneratorTest.php | 6 +- .../includes/Dumpers/RdfDumpGeneratorTest.php | 4 +- .../EntityReferenceExtractorDelegatorTest.php | 4 +- .../StatementEntityReferenceExtractorTest.php | 2 +- .../phpunit/includes/EntityTypesTest.php | 2 +- .../Api/RemoveClaimsTest.php | 2 +- .../Api/RemoveQualifiersTest.php | 2 +- .../ApiEntitySearchHelperTest.php | 2 +- ...ferenceEngineViewHeaderHookHandlerTest.php | 4 +- ...tityParserOutputGeneratorDecoratorTest.php | 4 +- .../Hooks/EditFilterHookRunnerTest.php | 2 +- .../EntityLinkFormatterFactoryTest.php | 2 +- ...PageLinkRendererEndHookHandlerTestBase.php | 10 +- .../LabelPrefetchHookHandlerTestBase.php | 4 +- .../Hooks/PageHistoryPagerHookHandlerTest.php | 4 +- .../Hooks/RecentChangeSaveHookHandlerTest.php | 4 +- .../Hooks/ShowSearchHitHandlerTest.php | 8 +- .../SummaryParsingPrefetchHelperTest.php | 2 +- .../includes/IO/EntityIdReaderTest.php | 2 +- .../Interactors/ItemMergeInteractorTest.php | 2 +- .../RedirectCreationInteractorTest.php | 2 +- .../Interactors/TokenCheckInteractorTest.php | 2 +- .../EntityDataRequestHandlerTest.php | 2 +- .../EntityDataSerializationServiceTest.php | 4 +- .../LinkedData/EntityDataUriManagerTest.php | 2 +- ...angeOpValidationExceptionLocalizerTest.php | 2 +- .../MessageParameterFormatterTest.php | 4 +- .../includes/Merge/StatementsMergerTest.php | 2 +- ...tchingEntityMetaTagsCreatorFactoryTest.php | 2 +- .../DispatchingEntityViewFactoryTest.php | 2 +- .../EntityParserOutputGeneratorTestBase.php | 6 +- .../ExternalLinksDataUpdaterTest.php | 4 +- .../ImageLinksDataUpdaterTest.php | 2 +- .../ParserOutputJsConfigBuilderTest.php | 2 +- .../ReferencedEntitiesDataUpdaterTest.php | 4 +- .../ParserOutput/TextInjectorTest.php | 2 +- .../Parsers/TimeParserFactoryTest.php | 4 +- .../includes/PropertyDataTypeChangerTest.php | 2 +- .../phpunit/includes/PropertyServicesTest.php | 4 +- .../Rdf/FullStatementRdfBuilderTest.php | 6 +- .../includes/Rdf/NTriplesRdfTestHelper.php | 2 +- .../Rdf/PropertyStubRdfBuilderTest.php | 2 +- .../phpunit/includes/Rdf/RdfBuilderTest.php | 2 +- .../includes/Rdf/SnakRdfBuilderTest.php | 2 +- .../ExternalIdentifierRdfBuilderTest.php | 2 +- repo/tests/phpunit/includes/RepoHooksTest.php | 10 +- .../HTMLForm/HTMLAliasesFieldTest.php | 2 +- .../HTMLForm/HTMLItemReferenceFieldTest.php | 2 +- .../Specials/SpecialAvailableBadgesTest.php | 2 +- .../Specials/SpecialEntityDataTest.php | 2 +- .../Specials/SpecialGoToLinkedPageTest.php | 8 +- .../Specials/SpecialItemByTitleTest.php | 4 +- .../SpecialItemDisambiguationTest.php | 4 +- .../Specials/SpecialListPropertiesTest.php | 2 +- .../Specials/SpecialMergeItemsTest.php | 6 +- .../includes/Specials/SpecialNewItemTest.php | 4 +- .../Specials/SpecialNewPropertyTest.php | 2 +- .../Specials/SpecialRedirectEntityTest.php | 4 +- .../SpecialWikibaseRepoPageTestBase.php | 2 +- .../CachingPrefetchingTermLookupTest.php | 2 +- .../Store/CachingPropertyInfoTest.php | 2 +- .../Store/Sql/SqlEntityIdPagerFactoryTest.php | 2 +- .../Store/Sql/SqlEntityIdPagerTest.php | 2 +- .../Sql/SqlSiteLinkConflictLookupTest.php | 2 +- .../Sql/WikiPageEntityMetaDataLookupTest.php | 2 +- .../Sql/WikiPageEntityRedirectLookupTest.php | 4 +- .../Store/Sql/WikiPageEntityStoreTest.php | 10 +- ...eDispatchingEntityTitleStoreLookupTest.php | 2 +- .../WikiPageEntityRevisionLookupTest.php | 2 +- ...kiPageEntityStorePermissionCheckerTest.php | 2 +- .../includes/ValidatorBuildersTest.php | 4 +- .../CommonsMediaExistsValidatorTest.php | 2 +- .../FingerprintUniquenessValidatorTest.php | 4 +- .../InterWikiLinkExistsValidatorTest.php | 2 +- .../includes/Validators/SnakValidatorTest.php | 2 +- .../Validators/StringLengthValidatorTest.php | 2 +- .../ValidatorErrorLocalizerTest.php | 2 +- .../includes/ValueParserFactoryTest.php | 6 +- .../phpunit/maintenance/DumpJsonTest.php | 2 +- .../tests/phpunit/maintenance/DumpRdfTest.php | 2 +- .../AllTypesEntityDeserializerTest.php | 4 +- .../ContentModelMappingsTest.php | 2 +- .../ServiceWiring/DataTypeDefinitionsTest.php | 2 +- .../DataTypeValidatorFactoryTest.php | 2 +- .../EntityChangeOpProviderTest.php | 2 +- .../unit/ServiceWiring/EntityDifferTest.php | 4 +- .../unit/ServiceWiring/EntityFactoryTest.php | 2 +- .../ServiceWiring/EntityIdComposerTest.php | 2 +- .../unit/ServiceWiring/EntityIdParserTest.php | 4 +- .../EntityNamespaceLookupTest.php | 2 +- .../unit/ServiceWiring/EntityPatcherTest.php | 4 +- .../EntitySearchHelperCallbacksTest.php | 2 +- .../EntityTypeDefinitionsTest.php | 2 +- .../ServiceWiring/FulltextSearchTypesTest.php | 4 +- .../ItemVocabularyBaseUriTest.php | 2 +- .../LocalEntityNamespaceLookupTest.php | 2 +- .../ServiceWiring/ValueParserFactoryTest.php | 2 +- .../ValueSnakRdfBuilderFactoryTest.php | 2 +- .../WikibaseContentLanguagesTest.php | 2 +- .../includes/Hooks/EntityDataPurgerTest.php | 2 +- view/resources.php | 6 +- view/resources/templates.php | 2 +- view/src/DummyLocalizedTextProvider.php | 2 +- view/src/FallbackChainModuleMethods.php | 2 +- view/src/SiteLinksView.php | 2 +- .../Renderer/TermboxRemoteRenderer.php | 2 +- ...ngerprintableEntityMetaTagsCreatorTest.php | 4 +- .../phpunit/SimpleEntityTermsViewTest.php | 6 +- view/tests/phpunit/SiteLinksViewTest.php | 2 +- .../phpunit/StatementGroupListViewTest.php | 2 +- .../Renderer/TermboxRemoteRendererTest.php | 2 +- view/tests/phpunit/TermsListViewTest.php | 4 +- .../ToolbarEditSectionGeneratorTest.php | 2 +- 370 files changed, 1268 insertions(+), 1342 deletions(-) diff --git a/.phpcs.xml b/.phpcs.xml index 645bd49..8225d26 100644 --- a/.phpcs.xml +++ b/.phpcs.xml @@ -1,11 +1,12 @@ <?xml version="1.0"?> <ruleset> <rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki"> + <exclude name="Generic.Files.LineLength.TooLong" /> + <exclude name="MediaWiki.Arrays.AlphabeticArraySort.Duplicate" /> <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate" /> <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected" /> <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" /> <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamTag" /> - <exclude name="MediaWiki.Usage.StaticClosure.StaticClosure" /> </rule> <!-- Starting a function's body with an empty line can be helpful after a very large header. diff --git a/client/WikibaseClient.ServiceWiring.php b/client/WikibaseClient.ServiceWiring.php index 1d20831..2ad59c4 100644 --- a/client/WikibaseClient.ServiceWiring.php +++ b/client/WikibaseClient.ServiceWiring.php @@ -137,7 +137,7 @@ use Wikibase\Lib\WikibaseSettings; /** @phpcs-require-sorted-array */ return [ - 'WikibaseClient.AffectedPagesFinder' => function ( MediaWikiServices $services ): AffectedPagesFinder { + 'WikibaseClient.AffectedPagesFinder' => static function ( MediaWikiServices $services ): AffectedPagesFinder { return new AffectedPagesFinder( WikibaseClient::getStore( $services )->getUsageLookup(), $services->getTitleFactory(), @@ -148,11 +148,11 @@ return [ ); }, - 'WikibaseClient.AliasTermBuffer' => function ( MediaWikiServices $services ): AliasTermBuffer { + 'WikibaseClient.AliasTermBuffer' => static function ( MediaWikiServices $services ): AliasTermBuffer { return WikibaseClient::getPrefetchingTermLookup( $services ); }, - 'WikibaseClient.BaseDataModelDeserializerFactory' => function ( MediaWikiServices $services ): DeserializerFactory { + 'WikibaseClient.BaseDataModelDeserializerFactory' => static function ( MediaWikiServices $services ): DeserializerFactory { $dataTypeDefs = WikibaseClient::getDataTypeDefinitions( $services ); return new DeserializerFactory( @@ -164,7 +164,7 @@ return [ ); }, - 'WikibaseClient.ChangeHandler' => function ( MediaWikiServices $services ): ChangeHandler { + 'WikibaseClient.ChangeHandler' => static function ( MediaWikiServices $services ): ChangeHandler { $logger = WikibaseClient::getLogger( $services ); $pageUpdater = new WikiPageUpdater( @@ -197,7 +197,7 @@ return [ ); }, - 'WikibaseClient.ClientDomainDbFactory' => function( MediaWikiServices $services ): ClientDomainDbFactory { + 'WikibaseClient.ClientDomainDbFactory' => static function( MediaWikiServices $services ): ClientDomainDbFactory { $lbFactory = $services->getDBLoadBalancerFactory(); return new ClientDomainDbFactory( @@ -206,7 +206,7 @@ return [ ); }, - 'WikibaseClient.CompactBaseDataModelSerializerFactory' => function ( MediaWikiServices $services ): SerializerFactory { + 'WikibaseClient.CompactBaseDataModelSerializerFactory' => static function ( MediaWikiServices $services ): SerializerFactory { /* Note: Unlike in repo, we do not pass * SerializerFactory::OPTION_SERIALIZE_USE_OBJECTS_FOR_EMPTY_MAPS * because as of January 2024, Scribunto does not support stdClass objects as Lua arrays */ @@ -217,7 +217,7 @@ return [ ); }, - 'WikibaseClient.CompactEntitySerializer' => function ( MediaWikiServices $services ): Serializer { + 'WikibaseClient.CompactEntitySerializer' => static function ( MediaWikiServices $services ): Serializer { $serializerFactoryCallbacks = WikibaseClient::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::SERIALIZER_FACTORY_CALLBACK ); $baseSerializerFactory = WikibaseClient::getCompactBaseDataModelSerializerFactory( $services ); @@ -230,13 +230,13 @@ return [ return new DispatchingSerializer( $serializers ); }, - 'WikibaseClient.DataAccessSettings' => function ( MediaWikiServices $services ): DataAccessSettings { + 'WikibaseClient.DataAccessSettings' => static function ( MediaWikiServices $services ): DataAccessSettings { return new DataAccessSettings( WikibaseClient::getSettings( $services )->getSetting( 'maxSerializedEntitySize' ) ); }, - 'WikibaseClient.DataAccessSnakFormatterFactory' => function ( MediaWikiServices $services ): DataAccessSnakFormatterFactory { + 'WikibaseClient.DataAccessSnakFormatterFactory' => static function ( MediaWikiServices $services ): DataAccessSnakFormatterFactory { return new DataAccessSnakFormatterFactory( WikibaseClient::getLanguageFallbackChainFactory( $services ), WikibaseClient::getSnakFormatterFactory( $services ), @@ -247,7 +247,7 @@ return [ ); }, - 'WikibaseClient.DataTypeDefinitions' => function ( MediaWikiServices $services ): DataTypeDefinitions { + 'WikibaseClient.DataTypeDefinitions' => static function ( MediaWikiServices $services ): DataTypeDefinitions { $baseDataTypes = require __DIR__ . '/../lib/WikibaseLib.datatypes.php'; $clientDataTypes = require __DIR__ . '/WikibaseClient.datatypes.php'; @@ -266,13 +266,13 @@ return [ ); }, - 'WikibaseClient.DataTypeFactory' => function ( MediaWikiServices $services ): DataTypeFactory { + 'WikibaseClient.DataTypeFactory' => static function ( MediaWikiServices $services ): DataTypeFactory { return new DataTypeFactory( WikibaseClient::getDataTypeDefinitions( $services )->getValueTypes() ); }, - 'WikibaseClient.DataValueDeserializer' => function ( MediaWikiServices $services ): DataValueDeserializer { + 'WikibaseClient.DataValueDeserializer' => static function ( MediaWikiServices $services ): DataValueDeserializer { return new DataValueDeserializer( array_merge( WikibaseClient::getDataTypeDefinitions( $services )->getDataValueDeserializerBuilders(), [ 'unknown' => UnknownValue::class ] @@ -285,7 +285,7 @@ return [ * @warning This is for use with {@link WikibaseClient::getDefaultSnakFormatterBuilders()} during bootstrap only! * Program logic should use {@link WikibaseClient::getSnakFormatterFactory()} instead! */ - 'WikibaseClient.DefaultSnakFormatterBuilders' => function ( MediaWikiServices $services ): WikibaseSnakFormatterBuilders { + 'WikibaseClient.DefaultSnakFormatterBuilders' => static function ( MediaWikiServices $services ): WikibaseSnakFormatterBuilders { return new WikibaseSnakFormatterBuilders( WikibaseClient::getDefaultValueFormatterBuilders( $services ), WikibaseClient::getPropertyInfoLookup( $services ), @@ -294,7 +294,7 @@ return [ ); }, - 'WikibaseClient.DefaultValueFormatterBuilders' => function ( MediaWikiServices $services ): WikibaseValueFormatterBuilders { + 'WikibaseClient.DefaultValueFormatterBuilders' => static function ( MediaWikiServices $services ): WikibaseValueFormatterBuilders { $clientStore = WikibaseClient::getStore( $services ); $settings = WikibaseClient::getSettings( $services ); $entityTitleLookup = new ClientSiteLinkTitleLookup( @@ -336,7 +336,7 @@ return [ ); }, - 'WikibaseClient.DescriptionLookup' => function ( MediaWikiServices $services ): DescriptionLookup { + 'WikibaseClient.DescriptionLookup' => static function ( MediaWikiServices $services ): DescriptionLookup { return new DescriptionLookup( WikibaseClient::getEntityIdLookup( $services ), WikibaseClient::getTermBuffer( $services ), @@ -344,7 +344,7 @@ return [ ); }, - 'WikibaseClient.EntityChangeFactory' => function ( MediaWikiServices $services ): EntityChangeFactory { + 'WikibaseClient.EntityChangeFactory' => static function ( MediaWikiServices $services ): EntityChangeFactory { // TODO: take this from a setting or registry. $changeClasses = [ Item::ENTITY_TYPE => ItemChange::class, @@ -360,7 +360,7 @@ return [ ); }, - 'WikibaseClient.EntityChangeLookup' => function ( MediaWikiServices $services ): EntityChangeLookup { + 'WikibaseClient.EntityChangeLookup' => static function ( MediaWikiServices $services ): EntityChangeLookup { return new EntityChangeLookup( WikibaseClient::getEntityChangeFactory( $services ), WikibaseClient::getEntityIdParser( $services ), @@ -369,7 +369,7 @@ return [ ); }, - 'WikibaseClient.EntityDiffer' => function ( MediaWikiServices $services ): EntityDiffer { + 'WikibaseClient.EntityDiffer' => static function ( MediaWikiServices $services ): EntityDiffer { $entityDiffer = new EntityDiffer(); $entityTypeDefinitions = WikibaseClient::getEntityTypeDefinitions( $services ); $builders = $entityTypeDefinitions->get( EntityTypeDefinitions::ENTITY_DIFFER_STRATEGY_BUILDER ); @@ -379,14 +379,14 @@ return [ return $entityDiffer; }, - 'WikibaseClient.EntityIdComposer' => function ( MediaWikiServices $services ): EntityIdComposer { + 'WikibaseClient.EntityIdComposer' => static function ( MediaWikiServices $services ): EntityIdComposer { return new EntityIdComposer( WikibaseClient::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::ENTITY_ID_COMPOSER_CALLBACK ) ); }, - 'WikibaseClient.EntityIdLookup' => function ( MediaWikiServices $services ): EntityIdLookup { + 'WikibaseClient.EntityIdLookup' => static function ( MediaWikiServices $services ): EntityIdLookup { $entityTypeDefinitions = WikibaseClient::getEntityTypeDefinitions( $services ); return new ByTypeDispatchingEntityIdLookup( $entityTypeDefinitions->get( EntityTypeDefinitions::CONTENT_MODEL_ID ), @@ -399,20 +399,20 @@ return [ ); }, - 'WikibaseClient.EntityIdParser' => function ( MediaWikiServices $services ): EntityIdParser { + 'WikibaseClient.EntityIdParser' => static function ( MediaWikiServices $services ): EntityIdParser { return new DispatchingEntityIdParser( WikibaseClient::getEntityTypeDefinitions( $services )->getEntityIdBuilders() ); }, - 'WikibaseClient.EntityLookup' => function ( MediaWikiServices $services ): EntityLookup { + 'WikibaseClient.EntityLookup' => static function ( MediaWikiServices $services ): EntityLookup { return WikibaseClient::getStore( $services )->getEntityLookup(); }, - 'WikibaseClient.EntityNamespaceLookup' => function ( MediaWikiServices $services ): EntityNamespaceLookup { + 'WikibaseClient.EntityNamespaceLookup' => static function ( MediaWikiServices $services ): EntityNamespaceLookup { return array_reduce( WikibaseClient::getEntitySourceDefinitions( $services )->getSources(), - function ( EntityNamespaceLookup $nsLookup, DatabaseEntitySource $source ): EntityNamespaceLookup { + static function ( EntityNamespaceLookup $nsLookup, DatabaseEntitySource $source ): EntityNamespaceLookup { return $nsLookup->merge( new EntityNamespaceLookup( $source->getEntityNamespaceIds(), $source->getEntitySlotNames() @@ -422,11 +422,11 @@ return [ ); }, - 'WikibaseClient.EntityRevisionLookup' => function ( MediaWikiServices $services ): EntityRevisionLookup { + 'WikibaseClient.EntityRevisionLookup' => static function ( MediaWikiServices $services ): EntityRevisionLookup { return WikibaseClient::getStore( $services )->getEntityRevisionLookup(); }, - 'WikibaseClient.EntitySourceAndTypeDefinitions' => function ( MediaWikiServices $services ): EntitySourceAndTypeDefinitions { + 'WikibaseClient.EntitySourceAndTypeDefinitions' => static function ( MediaWikiServices $services ): EntitySourceAndTypeDefinitions { // note: when adding support for further entity source types here, // also adjust the default 'entitySources' setting to copy sources of those types from the repo return new EntitySourceAndTypeDefinitions( @@ -435,7 +435,7 @@ return [ ); }, - 'WikibaseClient.EntitySourceDefinitions' => function ( MediaWikiServices $services ): EntitySourceDefinitions { + 'WikibaseClient.EntitySourceDefinitions' => static function ( MediaWikiServices $services ): EntitySourceDefinitions { $settings = WikibaseClient::getSettings( $services ); $subEntityTypesMapper = new SubEntityTypesMapper( WikibaseClient::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::SUB_ENTITY_TYPES ) ); @@ -445,7 +445,7 @@ return [ return $configParser->newDefinitionsFromConfigArray( $settings->getSetting( 'entitySources' ), $subEntityTypesMapper ); }, - 'WikibaseClient.EntityTypeDefinitions' => function ( MediaWikiServices $services ): EntityTypeDefinitions { + 'WikibaseClient.EntityTypeDefinitions' => static function ( MediaWikiServices $services ): EntityTypeDefinitions { $baseEntityTypes = require __DIR__ . '/../lib/WikibaseLib.entitytypes.php'; $clientEntityTypes = require __DIR__ . '/WikibaseClient.entitytypes.php'; @@ -459,7 +459,7 @@ return [ return new EntityTypeDefinitions( $entityTypes ); }, - 'WikibaseClient.ExternalUserNames' => function ( MediaWikiServices $services ): ?ExternalUserNames { + 'WikibaseClient.ExternalUserNames' => static function ( MediaWikiServices $services ): ?ExternalUserNames { $databaseName = WikibaseClient::getItemAndPropertySource( $services )->getDatabaseName(); if ( $databaseName !== false ) { $siteLookup = $services->getSiteLookup(); @@ -493,7 +493,7 @@ return [ return new ExternalUserNames( $interwikiPrefix, false ); }, - 'WikibaseClient.FallbackLabelDescriptionLookupFactory' => function ( + 'WikibaseClient.FallbackLabelDescriptionLookupFactory' => static function ( MediaWikiServices $services ): FallbackLabelDescriptionLookupFactory { return new FallbackLabelDescriptionLookupFactory( @@ -505,13 +505,13 @@ return [ ); }, - 'WikibaseClient.HookRunner' => function ( MediaWikiServices $services ): WikibaseClientHookRunner { + 'WikibaseClient.HookRunner' => static function ( MediaWikiServices $services ): WikibaseClientHookRunner { return new WikibaseClientHookRunner( $services->getHookContainer() ); }, - 'WikibaseClient.ItemAndPropertySource' => function ( MediaWikiServices $services ): EntitySource { + 'WikibaseClient.ItemAndPropertySource' => static function ( MediaWikiServices $services ): EntitySource { $itemAndPropertySourceName = WikibaseClient::getSettings( $services )->getSetting( 'itemAndPropertySourceName' ); $sources = WikibaseClient::getEntitySourceDefinitions( $services )->getSources(); foreach ( $sources as $source ) { @@ -523,7 +523,7 @@ return [ throw new LogicException( 'No source configured: ' . $itemAndPropertySourceName ); }, - 'WikibaseClient.ItemSource' => function ( MediaWikiServices $services ): EntitySource { + 'WikibaseClient.ItemSource' => static function ( MediaWikiServices $services ): EntitySource { $itemSource = WikibaseClient::getEntitySourceDefinitions( $services ) ->getDatabaseSourceForEntityType( Item::ENTITY_TYPE ); @@ -534,7 +534,7 @@ return [ return $itemSource; }, - 'WikibaseClient.KartographerEmbeddingHandler' => function ( + 'WikibaseClient.KartographerEmbeddingHandler' => static function ( MediaWikiServices $services ): ?CachingKartographerEmbeddingHandler { $settings = WikibaseClient::getSettings( $services ); @@ -551,7 +551,7 @@ return [ } }, - 'WikibaseClient.LangLinkHandlerFactory' => function ( MediaWikiServices $services ): LangLinkHandlerFactory { + 'WikibaseClient.LangLinkHandlerFactory' => static function ( MediaWikiServices $services ): LangLinkHandlerFactory { return new LangLinkHandlerFactory( WikibaseClient::getLanguageLinkBadgeDisplay( $services ), WikibaseClient::getNamespaceChecker( $services ), @@ -565,17 +565,17 @@ return [ ); }, - 'WikibaseClient.LangLinkSiteGroup' => function ( MediaWikiServices $services ): string { + 'WikibaseClient.LangLinkSiteGroup' => static function ( MediaWikiServices $services ): string { return WikibaseClient::getSettings( $services )->getSetting( 'languageLinkSiteGroup' ) ?? WikibaseClient::getSiteGroup( $services ); }, - 'WikibaseClient.LangLinkSiteGroups' => function ( MediaWikiServices $services ): array { + 'WikibaseClient.LangLinkSiteGroups' => static function ( MediaWikiServices $services ): array { return WikibaseClient::getSettings( $services )->getSetting( 'languageLinkAllowedSiteGroups' ) ?? [ WikibaseClient::getLangLinkSiteGroup( $services ) ]; }, - 'WikibaseClient.LanguageFallbackChainFactory' => function ( MediaWikiServices $services ): LanguageFallbackChainFactory { + 'WikibaseClient.LanguageFallbackChainFactory' => static function ( MediaWikiServices $services ): LanguageFallbackChainFactory { return new LanguageFallbackChainFactory( WikibaseClient::getTermsLanguages( $services ), $services->getLanguageFactory(), @@ -584,21 +584,21 @@ return [ ); }, - 'WikibaseClient.LanguageLinkBadgeDisplay' => function ( MediaWikiServices $services ): LanguageLinkBadgeDisplay { + 'WikibaseClient.LanguageLinkBadgeDisplay' => static function ( MediaWikiServices $services ): LanguageLinkBadgeDisplay { return new LanguageLinkBadgeDisplay( WikibaseClient::getSidebarLinkBadgeDisplay( $services ) ); }, - 'WikibaseClient.Logger' => function ( MediaWikiServices $services ): LoggerInterface { + 'WikibaseClient.Logger' => static function ( MediaWikiServices $services ): LoggerInterface { return LoggerFactory::getInstance( 'Wikibase' ); }, - 'WikibaseClient.MessageInLanguageProvider' => function ( MediaWikiServices $services ): MessageInLanguageProvider { + 'WikibaseClient.MessageInLanguageProvider' => static function ( MediaWikiServices $services ): MessageInLanguageProvider { return new MediaWikiMessageInLanguageProvider(); }, - 'WikibaseClient.MobileSite' => function ( MediaWikiServices $services ): bool { + 'WikibaseClient.MobileSite' => static function ( MediaWikiServices $services ): bool { if ( $services->has( 'MobileFrontend.Context' ) ) { $mobileContext = $services->get( 'MobileFrontend.Context' ); return $mobileContext->shouldDisplayMobileView(); @@ -606,7 +606,7 @@ return [ return false; }, - 'WikibaseClient.NamespaceChecker' => function ( MediaWikiServices $services ): NamespaceChecker { + 'WikibaseClient.NamespaceChecker' => static function ( MediaWikiServices $services ): NamespaceChecker { $settings = WikibaseClient::getSettings( $services ); return new NamespaceChecker( $settings->getSetting( 'excludeNamespaces' ), @@ -615,7 +615,7 @@ return [ ); }, - 'WikibaseClient.OtherProjectsSidebarGeneratorFactory' => function ( + 'WikibaseClient.OtherProjectsSidebarGeneratorFactory' => static function ( MediaWikiServices $services ): OtherProjectsSidebarGeneratorFactory { return new OtherProjectsSidebarGeneratorFactory( @@ -629,7 +629,7 @@ return [ ); }, - 'WikibaseClient.OtherProjectsSitesProvider' => function ( MediaWikiServices $services ): OtherProjectsSitesProvider { + 'WikibaseClient.OtherProjectsSitesProvider' => static function ( MediaWikiServices $services ): OtherProjectsSitesProvider { $settings = WikibaseClient::getSettings( $services ); return new CachingOtherProjectsSitesProvider( @@ -645,7 +645,7 @@ return [ ); }, - 'WikibaseClient.ParserOutputDataUpdater' => function ( MediaWikiServices $services ): ClientParserOutputDataUpdater { + 'WikibaseClient.ParserOutputDataUpdater' => static function ( MediaWikiServices $services ): ClientParserOutputDataUpdater { $settings = WikibaseClient::getSettings( $services ); return new ClientParserOutputDataUpdater( @@ -658,7 +658,7 @@ return [ ); }, - 'WikibaseClient.PrefetchingTermLookup' => function ( MediaWikiServices $services ): PrefetchingTermLookup { + 'WikibaseClient.PrefetchingTermLookup' => static function ( MediaWikiServices $services ): PrefetchingTermLookup { return new SourceAndTypeDispatchingPrefetchingTermLookup( new ServiceBySourceAndTypeDispatcher( PrefetchingTermLookup::class, @@ -673,7 +673,7 @@ return [ ); }, - 'WikibaseClient.PropertyDataTypeLookup' => function ( MediaWikiServices $services ): PropertyDataTypeLookup { + 'WikibaseClient.PropertyDataTypeLookup' => static function ( MediaWikiServices $services ): PropertyDataTypeLookup { $infoLookup = WikibaseClient::getPropertyInfoLookup( $services ); return new PropertyInfoDataTypeLookup( $infoLookup, @@ -682,7 +682,7 @@ return [ ); }, - 'WikibaseClient.PropertyInfoLookup' => function ( MediaWikiServices $services ): PropertyInfoLookup { + 'WikibaseClient.PropertyInfoLookup' => static function ( MediaWikiServices $services ): PropertyInfoLookup { $settings = WikibaseClient::getSettings( $services ); $cacheKeyGroup = $settings->getSetting( 'sharedCacheKeyGroup' ); $cacheDuration = $settings->getSetting( 'sharedCacheDuration' ); @@ -706,7 +706,7 @@ return [ ); }, - 'WikibaseClient.PropertyLabelResolver' => function ( MediaWikiServices $services ): PropertyLabelResolver { + 'WikibaseClient.PropertyLabelResolver' => static function ( MediaWikiServices $services ): PropertyLabelResolver { // Required services $languageCode = $services->getContentLanguageCode()->toString(); @@ -742,7 +742,7 @@ return [ ); }, - 'WikibaseClient.PropertyOrderProvider' => function ( MediaWikiServices $services ): CachingPropertyOrderProvider { + 'WikibaseClient.PropertyOrderProvider' => static function ( MediaWikiServices $services ): CachingPropertyOrderProvider { $title = $services->getTitleFactory()->newFromTextThrow( 'MediaWiki:Wikibase-SortedProperties' ); $innerProvider = new WikiPagePropertyOrderProvider( $services->getWikiPageFactory(), $title ); @@ -765,7 +765,7 @@ return [ ); }, - 'WikibaseClient.PropertyParserFunctionRunner' => function ( MediaWikiServices $services ): Runner { + 'WikibaseClient.PropertyParserFunctionRunner' => static function ( MediaWikiServices $services ): Runner { $settings = WikibaseClient::getSettings( $services ); return new Runner( WikibaseClient::getStatementGroupRendererFactory( $services ), @@ -777,7 +777,7 @@ return [ ); }, - 'WikibaseClient.PropertySource' => function ( MediaWikiServices $services ): EntitySource { + 'WikibaseClient.PropertySource' => static function ( MediaWikiServices $services ): EntitySource { $propertySource = WikibaseClient::getEntitySourceDefinitions( $services ) ->getDatabaseSourceForEntityType( Property::ENTITY_TYPE ); @@ -788,7 +788,7 @@ return [ return $propertySource; }, - 'WikibaseClient.RecentChangeFactory' => function ( MediaWikiServices $services ): RecentChangeFactory { + 'WikibaseClient.RecentChangeFactory' => static function ( MediaWikiServices $services ): RecentChangeFactory { $contentLanguage = $services->getContentLanguage(); $siteLookup = $services->getSiteLookup(); @@ -806,7 +806,7 @@ return [ ); }, - 'WikibaseClient.RedirectResolvingLatestRevisionLookup' => function ( + 'WikibaseClient.RedirectResolvingLatestRevisionLookup' => static function ( MediaWikiServices $services ): RedirectResolvingLatestRevisionLookup { return new RedirectResolvingLatestRevisionLookup( @@ -814,7 +814,7 @@ return [ ); }, - 'WikibaseClient.ReferenceFormatterFactory' => function ( MediaWikiServices $services ): ReferenceFormatterFactory { + 'WikibaseClient.ReferenceFormatterFactory' => static function ( MediaWikiServices $services ): ReferenceFormatterFactory { $logger = WikibaseClient::getLogger( $services ); return new ReferenceFormatterFactory( WikibaseClient::getDataAccessSnakFormatterFactory( $services ), @@ -827,7 +827,7 @@ return [ ); }, - 'WikibaseClient.RepoDomainDbFactory' => function ( MediaWikiServices $services ): RepoDomainDbFactory { + 'WikibaseClient.RepoDomainDbFactory' => static function ( MediaWikiServices $services ): RepoDomainDbFactory { $lbFactory = $services->getDBLoadBalancerFactory(); return new RepoDomainDbFactory( @@ -837,7 +837,7 @@ return [ ); }, - 'WikibaseClient.RepoItemUriParser' => function ( MediaWikiServices $services ): EntityIdParser { + 'WikibaseClient.RepoItemUriParser' => static function ( MediaWikiServices $services ): EntityIdParser { $itemConceptUriBase = WikibaseClient::getItemSource( $services ) ->getConceptBaseUri(); @@ -847,7 +847,7 @@ return [ ); }, - 'WikibaseClient.RepoLinker' => function ( MediaWikiServices $services ): RepoLinker { + 'WikibaseClient.RepoLinker' => static function ( MediaWikiServices $services ): RepoLinker { $settings = WikibaseClient::getSettings( $services ); return new RepoLinker( @@ -858,7 +858,7 @@ return [ ); }, - 'WikibaseClient.RestrictedEntityLookupFactory' => function ( MediaWikiServices $services ): RestrictedEntityLookupFactory { + 'WikibaseClient.RestrictedEntityLookupFactory' => static function ( MediaWikiServices $services ): RestrictedEntityLookupFactory { $settings = WikibaseClient::getSettings( $services ); $disabledEntityTypesEntityLookup = new DisabledEntityTypesEntityLookup( WikibaseClient::getEntityLookup( $services ), @@ -870,11 +870,11 @@ return [ ); }, - 'WikibaseClient.Settings' => function ( MediaWikiServices $services ): SettingsArray { + 'WikibaseClient.Settings' => static function ( MediaWikiServices $services ): SettingsArray { return WikibaseSettings::getClientSettings(); }, - 'WikibaseClient.SidebarLinkBadgeDisplay' => function ( MediaWikiServices $services ): SidebarLinkBadgeDisplay { + 'WikibaseClient.SidebarLinkBadgeDisplay' => static function ( MediaWikiServices $services ): SidebarLinkBadgeDisplay { $badgeClassNames = WikibaseClient::getSettings( $services )->getSetting( 'badgeClassNames' ); $labelDescriptionLookupFactory = WikibaseClient::getFallbackLabelDescriptionLookupFactory( $services ); $lang = WikibaseClient::getUserLanguage( $services ); @@ -886,7 +886,7 @@ return [ ); }, - 'WikibaseClient.Site' => function ( MediaWikiServices $services ): Site { + 'WikibaseClient.Site' => static function ( MediaWikiServices $services ): Site { $settings = WikibaseClient::getSettings( $services ); $globalId = $settings->getSetting( 'siteGlobalID' ); $localId = $settings->getSetting( 'siteLocalID' ); @@ -923,7 +923,7 @@ return [ return $site; }, - 'WikibaseClient.SiteGroup' => function ( MediaWikiServices $services ): string { + 'WikibaseClient.SiteGroup' => static function ( MediaWikiServices $services ): string { $settings = WikibaseClient::getSettings( $services ); $siteGroup = $settings->getSetting( 'siteGroup' ); @@ -944,7 +944,7 @@ return [ return $siteGroup; }, - 'WikibaseClient.SnakFormatterFactory' => function ( MediaWikiServices $services ): OutputFormatSnakFormatterFactory { + 'WikibaseClient.SnakFormatterFactory' => static function ( MediaWikiServices $services ): OutputFormatSnakFormatterFactory { return new OutputFormatSnakFormatterFactory( WikibaseClient::getDataTypeDefinitions( $services ) ->getSnakFormatterFactoryCallbacks(), @@ -955,7 +955,7 @@ return [ ); }, - 'WikibaseClient.StatementGroupRendererFactory' => function ( MediaWikiServices $services ): StatementGroupRendererFactory { + 'WikibaseClient.StatementGroupRendererFactory' => static function ( MediaWikiServices $services ): StatementGroupRendererFactory { return new StatementGroupRendererFactory( WikibaseClient::getPropertyLabelResolver( $services ), new SnaksFinder(), @@ -969,7 +969,7 @@ return [ ); }, - 'WikibaseClient.Store' => function ( MediaWikiServices $services ): ClientStore { + 'WikibaseClient.Store' => static function ( MediaWikiServices $services ): ClientStore { return new DirectSqlStore( WikibaseClient::getEntityIdParser( $services ), WikibaseClient::getEntityIdLookup( $services ), @@ -982,22 +982,22 @@ return [ ); }, - 'WikibaseClient.StringNormalizer' => function ( MediaWikiServices $services ): StringNormalizer { + 'WikibaseClient.StringNormalizer' => static function ( MediaWikiServices $services ): StringNormalizer { return new StringNormalizer(); }, - 'WikibaseClient.TermBuffer' => function ( MediaWikiServices $services ): TermBuffer { + 'WikibaseClient.TermBuffer' => static function ( MediaWikiServices $services ): TermBuffer { return WikibaseClient::getPrefetchingTermLookup( $services ); }, - 'WikibaseClient.TermFallbackCache' => function ( MediaWikiServices $services ): TermFallbackCacheFacade { + 'WikibaseClient.TermFallbackCache' => static function ( MediaWikiServices $services ): TermFallbackCacheFacade { return new TermFallbackCacheFacade( WikibaseClient::getTermFallbackCacheFactory( $services )->getTermFallbackCache(), WikibaseClient::getSettings( $services )->getSetting( 'sharedCacheDuration' ) ); }, - 'WikibaseClient.TermFallbackCacheFactory' => function ( MediaWikiServices $services ): TermFallbackCacheFactory { + 'WikibaseClient.TermFallbackCacheFactory' => static function ( MediaWikiServices $services ): TermFallbackCacheFactory { $settings = WikibaseClient::getSettings( $services ); return new TermFallbackCacheFactory( $settings->getSetting( 'sharedCacheType' ), @@ -1010,7 +1010,7 @@ return [ ); }, - 'WikibaseClient.TermInLangIdsResolverFactory' => function ( + 'WikibaseClient.TermInLangIdsResolverFactory' => static function ( MediaWikiServices $services ): TermInLangIdsResolverFactory { return new TermInLangIdsResolverFactory( @@ -1020,16 +1020,16 @@ return [ ); }, - 'WikibaseClient.TermLookup' => function ( MediaWikiServices $services ): TermLookup { + 'WikibaseClient.TermLookup' => static function ( MediaWikiServices $services ): TermLookup { return WikibaseClient::getPrefetchingTermLookup( $services ); }, - 'WikibaseClient.TermsLanguages' => function ( MediaWikiServices $services ): ContentLanguages { + 'WikibaseClient.TermsLanguages' => static function ( MediaWikiServices $services ): ContentLanguages { return WikibaseClient::getWikibaseContentLanguages( $services ) ->getContentLanguages( WikibaseContentLanguages::CONTEXT_TERM ); }, - 'WikibaseClient.UsageAccumulatorFactory' => function ( MediaWikiServices $services ): UsageAccumulatorFactory { + 'WikibaseClient.UsageAccumulatorFactory' => static function ( MediaWikiServices $services ): UsageAccumulatorFactory { $usageModifierLimits = WikibaseClient::getSettings( $services )->getSetting( 'entityUsageModifierLimits' ); @@ -1042,7 +1042,7 @@ return [ ); }, - 'WikibaseClient.UserLanguage' => function ( MediaWikiServices $services ): Language { + 'WikibaseClient.UserLanguage' => static function ( MediaWikiServices $services ): Language { global $wgLang; // TODO: define a LanguageProvider service instead of using a global directly. @@ -1057,7 +1057,7 @@ return [ return $wgLang; }, - 'WikibaseClient.ValueFormatterFactory' => function ( MediaWikiServices $services ): OutputFormatValueFormatterFactory { + 'WikibaseClient.ValueFormatterFactory' => static function ( MediaWikiServices $services ): OutputFormatValueFormatterFactory { return new OutputFormatValueFormatterFactory( WikibaseClient::getDataTypeDefinitions( $services ) ->getFormatterFactoryCallbacks( DataTypeDefinitions::PREFIXED_MODE ), @@ -1066,14 +1066,14 @@ return [ ); }, - 'WikibaseClient.WikibaseContentLanguages' => function ( MediaWikiServices $services ): WikibaseContentLanguages { + 'WikibaseClient.WikibaseContentLanguages' => static function ( MediaWikiServices $services ): WikibaseContentLanguages { return WikibaseContentLanguages::getDefaultInstance( $services->getHookContainer(), $services->getLanguageNameUtils() ); }, - 'WikibaseClient.WikibaseServices' => function ( MediaWikiServices $services ): WikibaseServices { + 'WikibaseClient.WikibaseServices' => static function ( MediaWikiServices $services ): WikibaseServices { $entitySourceDefinitions = WikibaseClient::getEntitySourceDefinitions( $services ); $singleEntitySourceServicesFactory = new SingleEntitySourceServicesFactory( WikibaseClient::getEntityIdParser( $services ), diff --git a/client/WikibaseClient.datatypes.php b/client/WikibaseClient.datatypes.php index 443af80..4576a5b 100644 --- a/client/WikibaseClient.datatypes.php +++ b/client/WikibaseClient.datatypes.php @@ -32,7 +32,7 @@ use Wikibase\Client\WikibaseClient; use Wikibase\DataModel\Entity\EntityIdValue; use Wikibase\Lib\Formatters\UnmappedEntityIdValueFormatter; -return call_user_func( function() { +return call_user_func( static function() { // NOTE: 'formatter-factory-callback' callbacks act as glue between the high level interface // OutputFormatValueFormatterFactory and the low level factory for validators for well // known data types, the WikibaseValueFormatterBuilders class. @@ -44,88 +44,88 @@ return call_user_func( function() { return [ 'VT:bad' => [ - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseClient::getDefaultValueFormatterBuilders(); return $factory->newUnDeserializableValueFormatter( $format, $options ); }, ], 'VT:globecoordinate' => [ 'deserializer-builder' => GlobeCoordinateValue::class, - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseClient::getDefaultValueFormatterBuilders(); return $factory->newGlobeCoordinateFormatter( $format, $options ); }, ], 'VT:monolingualtext' => [ 'deserializer-builder' => MonolingualTextValue::class, - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseClient::getDefaultValueFormatterBuilders(); return $factory->newMonolingualFormatter( $format, $options ); }, ], 'VT:quantity' => [ 'deserializer-builder' => QuantityValue::class, - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseClient::getDefaultValueFormatterBuilders(); return $factory->newQuantityFormatter( $format, $options ); }, ], 'VT:string' => [ 'deserializer-builder' => StringValue::class, - 'formatter-factory-callback' => function( $format ) { + 'formatter-factory-callback' => static function( $format ) { $factory = WikibaseClient::getDefaultValueFormatterBuilders(); return $factory->newStringFormatter( $format ); }, ], 'PT:url' => [ - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseClient::getDefaultValueFormatterBuilders(); return $factory->newUrlFormatter( $format, $options ); }, ], 'PT:commonsMedia' => [ - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseClient::getDefaultValueFormatterBuilders(); return $factory->newCommonsMediaFormatter( $format, $options ); }, ], 'PT:geo-shape' => [ - 'formatter-factory-callback' => function( $format ) { + 'formatter-factory-callback' => static function( $format ) { $factory = WikibaseClient::getDefaultValueFormatterBuilders(); return $factory->newGeoShapeFormatter( $format ); }, ], 'PT:tabular-data' => [ - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseClient::getDefaultValueFormatterBuilders(); return $factory->newTabularDataFormatter( $format, $options ); }, ], 'VT:time' => [ 'deserializer-builder' => TimeValue::class, - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseClient::getDefaultValueFormatterBuilders(); return $factory->newTimeFormatter( $format, $options ); }, ], 'VT:wikibase-entityid' => [ - 'deserializer-builder' => function ( $value ) { + 'deserializer-builder' => static function ( $value ) { return isset( $value['id'] ) ? new EntityIdValue( WikibaseClient::getEntityIdParser()->parse( $value['id'] ) ) : EntityIdValue::newFromArray( $value ); }, - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseClient::getDefaultValueFormatterBuilders(); return $factory->newEntityIdFormatter( $format, $options ); }, ], 'VT:wikibase-unmapped-entityid' => [ - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { return new UnmappedEntityIdValueFormatter(); }, ], 'PT:external-id' => [ - 'snak-formatter-factory-callback' => function( $format ) { + 'snak-formatter-factory-callback' => static function( $format ) { $factory = WikibaseClient::getDefaultSnakFormatterBuilders(); return $factory->newExternalIdentifierFormatter( $format ); }, diff --git a/client/WikibaseClient.entitytypes.php b/client/WikibaseClient.entitytypes.php index 8fac1fb..7b24e8d 100644 --- a/client/WikibaseClient.entitytypes.php +++ b/client/WikibaseClient.entitytypes.php @@ -30,7 +30,7 @@ use Wikimedia\ObjectCache\EmptyBagOStuff; return [ 'item' => [ - Def::PREFETCHING_TERM_LOOKUP_CALLBACK => function ( DatabaseEntitySource $entitySource ) { + Def::PREFETCHING_TERM_LOOKUP_CALLBACK => static function ( DatabaseEntitySource $entitySource ) { $termIdsResolver = WikibaseClient::getTermInLangIdsResolverFactory() ->getResolverForEntitySource( $entitySource ); @@ -38,7 +38,7 @@ return [ }, ], 'property' => [ - Def::PREFETCHING_TERM_LOOKUP_CALLBACK => function ( DatabaseEntitySource $entitySource ) { + Def::PREFETCHING_TERM_LOOKUP_CALLBACK => static function ( DatabaseEntitySource $entitySource ) { $mwServices = MediaWikiServices::getInstance(); $cacheSecret = hash( 'sha256', $mwServices->getMainConfig()->get( 'SecretKey' ) ); diff --git a/client/config/WikibaseClient.default.php b/client/config/WikibaseClient.default.php index 8eef5a6..f1b54eb 100644 --- a/client/config/WikibaseClient.default.php +++ b/client/config/WikibaseClient.default.php @@ -23,7 +23,7 @@ require_once __DIR__ . '/../includes/Usage/EntityUsage.php'; * @author Daniel Kinzler */ -return call_user_func( function() { +return call_user_func( static function() { global $wgLanguageCode; $defaults = [ @@ -105,7 +105,7 @@ return call_user_func( function() { 'sharedCacheType' => $GLOBALS['wgMainCacheType'], // Batch size for UpdateHtmlCacheJob - 'purgeCacheBatchSize' => function ( SettingsArray $settings ) { + 'purgeCacheBatchSize' => static function ( SettingsArray $settings ) { $mainConfig = MediaWikiServices::getInstance()->getMainConfig(); return $settings->hasSetting( 'wikiPageUpdaterDbBatchSize' ) ? $settings->getSetting( 'wikiPageUpdaterDbBatchSize' ) @@ -113,7 +113,7 @@ return call_user_func( function() { }, // Batch size for InjectRCRecordsJob - 'recentChangesBatchSize' => function ( SettingsArray $settings ) { + 'recentChangesBatchSize' => static function ( SettingsArray $settings ) { $mainConfig = MediaWikiServices::getInstance()->getMainConfig(); return $settings->hasSetting( 'wikiPageUpdaterDbBatchSize' ) ? $settings->getSetting( 'wikiPageUpdaterDbBatchSize' ) @@ -173,12 +173,12 @@ return call_user_func( function() { // We use the pseudo-setting thisWikiIsTheRepo to store this information. // thisWikiIsTheRepo should really never be overwritten, except for testing. - $defaults['thisWikiIsTheRepo'] = function ( SettingsArray $settings ) { + $defaults['thisWikiIsTheRepo'] = static function ( SettingsArray $settings ) { // determine whether the repo extension is present return WikibaseSettings::isRepoEnabled(); }; - $defaults['entitySources'] = function ( SettingsArray $settings ) { + $defaults['entitySources'] = static function ( SettingsArray $settings ) { if ( $settings->getSetting( 'thisWikiIsTheRepo' ) ) { // copy the repo’s effective entitySources setting $entitySourceDefinitions = WikibaseRepo::getEntitySourceDefinitions(); @@ -212,7 +212,7 @@ return call_user_func( function() { throw new Exception( 'entitySources must be configured for non-repo client wikis' ); }; - $defaults['itemAndPropertySourceName'] = function ( SettingsArray $settings ) { + $defaults['itemAndPropertySourceName'] = static function ( SettingsArray $settings ) { if ( $settings->getSetting( 'thisWikiIsTheRepo' ) ) { return WikibaseRepo::getSettings()->getSetting( 'localEntitySourceName' ); } @@ -220,35 +220,35 @@ return call_user_func( function() { return 'local'; }; - $defaults['repoSiteName'] = function ( SettingsArray $settings ) { + $defaults['repoSiteName'] = static function ( SettingsArray $settings ) { // This uses $wgSitename if this wiki is the repo. Otherwise, set this to // either an i18n message key and the message will be used, if it exists. // If repo site name does not need translation, then set this as a string. return $settings->getSetting( 'thisWikiIsTheRepo' ) ? $GLOBALS['wgSitename'] : 'Wikibase'; }; - $defaults['repoUrl'] = function ( SettingsArray $settings ) { + $defaults['repoUrl'] = static function ( SettingsArray $settings ) { // use $wgServer if this wiki is the repo, otherwise default to wikidata.org return $settings->getSetting( 'thisWikiIsTheRepo' ) ? $GLOBALS['wgServer'] : '//www.wikidata.org'; }; - $defaults['repoArticlePath'] = function ( SettingsArray $settings ) { + $defaults['repoArticlePath'] = static function ( SettingsArray $settings ) { // use $wgArticlePath if this wiki is the repo, otherwise default to /wiki/$1 return $settings->getSetting( 'thisWikiIsTheRepo' ) ? $GLOBALS['wgArticlePath'] : '/wiki/$1'; }; - $defaults['repoScriptPath'] = function ( SettingsArray $settings ) { + $defaults['repoScriptPath'] = static function ( SettingsArray $settings ) { // use $wgScriptPath if this wiki is the repo, otherwise default to /w return $settings->getSetting( 'thisWikiIsTheRepo' ) ? $GLOBALS['wgScriptPath'] : '/w'; }; - $defaults['siteGlobalID'] = function ( SettingsArray $settings ) { + $defaults['siteGlobalID'] = static function ( SettingsArray $settings ) { // The database name is a sane default for the site ID. // On Wikimedia sites, this is always correct. return $GLOBALS['wgDBname']; }; - $defaults['repoSiteId'] = function( SettingsArray $settings ) { + $defaults['repoSiteId'] = static function( SettingsArray $settings ) { $entitySources = $settings->getSetting( 'entitySources' ); $itemAndPropertySourceName = $settings->getSetting( 'itemAndPropertySourceName' ); $repoDatabase = $entitySources[$itemAndPropertySourceName]['repoDatabase']; @@ -258,12 +258,12 @@ return call_user_func( function() { : $repoDatabase; }; - $defaults['siteGroup'] = function ( SettingsArray $settings ) { + $defaults['siteGroup'] = static function ( SettingsArray $settings ) { // by default lookup from SiteLookup, can override with setting for performance reasons return null; }; - $defaults['otherProjectsLinks'] = function ( SettingsArray $settings ) { + $defaults['otherProjectsLinks'] = static function ( SettingsArray $settings ) { $otherProjectsSitesProvider = WikibaseClient::getOtherProjectsSitesProvider(); return $otherProjectsSitesProvider->getOtherProjectsSiteIds( $settings->getSetting( 'siteLinkGroups' ) ); }; diff --git a/client/includes/Api/PageTerms.php b/client/includes/Api/PageTerms.php index 648c465..fba86ed 100644 --- a/client/includes/Api/PageTerms.php +++ b/client/includes/Api/PageTerms.php @@ -171,7 +171,7 @@ class PageTerms extends ApiQueryBase { */ private function getEntityToPageMap( array $entityIds ): array { $entityIdsStrings = array_map( - function( EntityId $id ) { + static function( EntityId $id ) { return $id->getSerialization(); }, $entityIds diff --git a/client/includes/ClientHooks.php b/client/includes/ClientHooks.php index 9232f53..96bde04 100644 --- a/client/includes/ClientHooks.php +++ b/client/includes/ClientHooks.php @@ -240,7 +240,7 @@ final class ClientHooks { return $cache->getWithSetCallback( $key, $cache::TTL_DAY, // when changing the TTL, also update linkItemTags in options.md - function () { + static function () { $site = WikibaseClient::getSite(); $currentSite = [ 'globalSiteId' => $site->getGlobalId(), diff --git a/client/includes/DataAccess/DataAccessSnakFormatterFactory.php b/client/includes/DataAccess/DataAccessSnakFormatterFactory.php index 042e87b..933b31b 100644 --- a/client/includes/DataAccess/DataAccessSnakFormatterFactory.php +++ b/client/includes/DataAccess/DataAccessSnakFormatterFactory.php @@ -149,7 +149,7 @@ class DataAccessSnakFormatterFactory { return new EscapingSnakFormatter( SnakFormatter::FORMAT_WIKI, $snakFormatter, - function( $str ) { + static function( $str ) { return $str === '' ? '' : "<span>$str</span>"; } ); diff --git a/client/includes/DataBridge/DataBridgeResourceLoaderModules.php b/client/includes/DataBridge/DataBridgeResourceLoaderModules.php index e7919ad..1dca291 100644 --- a/client/includes/DataBridge/DataBridgeResourceLoaderModules.php +++ b/client/includes/DataBridge/DataBridgeResourceLoaderModules.php @@ -77,7 +77,7 @@ class DataBridgeResourceLoaderModules implements ResourceLoaderRegisterModulesHo $clientSettings = WikibaseClient::getSettings(); return new MediaWikiConfigModule( [ - 'getconfigvalueprovider' => function () use ( $clientSettings ) { + 'getconfigvalueprovider' => static function () use ( $clientSettings ) { return new DataBridgeConfigValueProvider( $clientSettings, MediaWikiServices::getInstance()->getMainConfig()->get( 'EditSubmitButtonLabelPublish' ) diff --git a/client/includes/Hooks/DescriptionProviderHookHandler.php b/client/includes/Hooks/DescriptionProviderHookHandler.php index 5e8a54a..b366842 100644 --- a/client/includes/Hooks/DescriptionProviderHookHandler.php +++ b/client/includes/Hooks/DescriptionProviderHookHandler.php @@ -45,7 +45,7 @@ class DescriptionProviderHookHandler implements SearchResultProvideDescriptionHo $sources = [ DescriptionLookup::SOURCE_CENTRAL, DescriptionLookup::SOURCE_LOCAL ]; } - $pageIdTitles = array_map( function ( PageIdentity $identity ) { + $pageIdTitles = array_map( static function ( PageIdentity $identity ) { return Title::makeTitle( $identity->getNamespace(), $identity->getDBkey() ); }, $pageIdentities ); diff --git a/client/includes/Hooks/ExtensionLoadHandler.php b/client/includes/Hooks/ExtensionLoadHandler.php index f83b7cb..b9929fb 100644 --- a/client/includes/Hooks/ExtensionLoadHandler.php +++ b/client/includes/Hooks/ExtensionLoadHandler.php @@ -80,7 +80,7 @@ class ExtensionLoadHandler { 'WikibaseClient.BaseDataModelDeserializerFactory', 'WikibaseClient.ReferenceFormatterFactory', ], - 'factory' => function ( + 'factory' => static function ( ApiMain $apiMain, string $moduleName, ParserFactory $parserFactory, diff --git a/client/includes/Hooks/LoadExtensionSchemaUpdatesHookHandler.php b/client/includes/Hooks/LoadExtensionSchemaUpdatesHookHandler.php index 74ae5a2..0239f03 100644 --- a/client/includes/Hooks/LoadExtensionSchemaUpdatesHookHandler.php +++ b/client/includes/Hooks/LoadExtensionSchemaUpdatesHookHandler.php @@ -47,7 +47,7 @@ class LoadExtensionSchemaUpdatesHookHandler implements LoadExtensionSchemaUpdate $primer->setProgressReporter( new CallbackMessageReporter( - function( $msg ) use ( $dbUpdater ) { + static function( $msg ) use ( $dbUpdater ) { $dbUpdater->output( "\t$msg\n" ); } ) diff --git a/client/includes/Hooks/ParserFunctionRegistrant.php b/client/includes/Hooks/ParserFunctionRegistrant.php index 67d0597..bea8f13 100644 --- a/client/includes/Hooks/ParserFunctionRegistrant.php +++ b/client/includes/Hooks/ParserFunctionRegistrant.php @@ -80,7 +80,7 @@ class ParserFunctionRegistrant implements ParserFirstCallInitHook, GetDoubleUnde $parser->setFunctionHook( 'property', - function( Parser $parser, PPFrame $frame, array $args ) { + static function( Parser $parser, PPFrame $frame, array $args ) { return Runner::renderEscapedPlainText( $parser, $frame, $args ); }, Parser::SFH_OBJECT_ARGS @@ -88,7 +88,7 @@ class ParserFunctionRegistrant implements ParserFirstCallInitHook, GetDoubleUnde $parser->setFunctionHook( 'statements', - function( Parser $parser, PPFrame $frame, array $args ) { + static function( Parser $parser, PPFrame $frame, array $args ) { return Runner::renderRichWikitext( $parser, $frame, $args ); }, Parser::SFH_OBJECT_ARGS diff --git a/client/includes/Serializer/ClientSerializer.php b/client/includes/Serializer/ClientSerializer.php index 437e2ff..bda885e 100644 --- a/client/includes/Serializer/ClientSerializer.php +++ b/client/includes/Serializer/ClientSerializer.php @@ -50,7 +50,7 @@ abstract class ClientSerializer implements Serializer { protected function omitEmptyArrays( array $serialization ) { return array_filter( $serialization, - function( $value ) { + static function( $value ) { return $value !== []; } ); diff --git a/client/includes/Specials/SpecialPagesWithBadges.php b/client/includes/Specials/SpecialPagesWithBadges.php index 3c5ab96..3a9434b 100644 --- a/client/includes/Specials/SpecialPagesWithBadges.php +++ b/client/includes/Specials/SpecialPagesWithBadges.php @@ -144,7 +144,7 @@ class SpecialPagesWithBadges extends QueryPage { private function getOptionsArray() { /** @var ItemId[] $badgeItemIds */ $badgeItemIds = array_map( - function( $badgeId ) { + static function( $badgeId ) { return new ItemId( $badgeId ); }, $this->badgeIds diff --git a/client/includes/Store/AddUsagesForPageJob.php b/client/includes/Store/AddUsagesForPageJob.php index 8cc6a9c..398d128 100644 --- a/client/includes/Store/AddUsagesForPageJob.php +++ b/client/includes/Store/AddUsagesForPageJob.php @@ -38,7 +38,7 @@ class AddUsagesForPageJob extends Job { */ public static function newSpec( Title $title, array $usages ) { // NOTE: Map EntityUsage objects to scalar arrays, for JSON serialization in the job queue. - $usages = array_map( function ( EntityUsage $usage ) { + $usages = array_map( static function ( EntityUsage $usage ) { return $usage->asArray(); }, $usages ); @@ -98,7 +98,7 @@ class AddUsagesForPageJob extends Job { private function getUsages() { // Turn serialized usage info into EntityUsage objects $idParser = $this->idParser; - $usages = array_map( function ( array $usageArray ) use ( $idParser ) { + $usages = array_map( static function ( array $usageArray ) use ( $idParser ) { // This is the inverse of EntityUsage::asArray() return new EntityUsage( $idParser->parse( $usageArray['entityId'] ), diff --git a/client/includes/Store/DescriptionLookup.php b/client/includes/Store/DescriptionLookup.php index aa468e8..6d77a1e 100644 --- a/client/includes/Store/DescriptionLookup.php +++ b/client/includes/Store/DescriptionLookup.php @@ -70,7 +70,7 @@ class DescriptionLookup { * will be omitted. */ public function getDescriptions( array $titles, $sources, &$actualSources = null ) { - $pageIds = array_map( function ( Title $title ) { + $pageIds = array_map( static function ( Title $title ) { return $title->getArticleID(); }, $titles ); $titlesByPageId = array_combine( $pageIds, $titles ); @@ -143,7 +143,7 @@ class DescriptionLookup { return []; } - $languages = array_unique( array_map( function ( Title $title ) { + $languages = array_unique( array_map( static function ( Title $title ) { return $title->getPageLanguage()->getCode(); }, $titlesByPageId ) ); @@ -154,7 +154,7 @@ class DescriptionLookup { $languages ); - $pageIdsByEntityId = array_flip( array_map( function ( EntityId $entityId ) { + $pageIdsByEntityId = array_flip( array_map( static function ( EntityId $entityId ) { return $entityId->getSerialization(); }, $entityIdsByPageId ) ); $descriptionsByPageId = []; diff --git a/client/includes/Store/Sql/PagePropsEntityIdLookup.php b/client/includes/Store/Sql/PagePropsEntityIdLookup.php index b8d1f06..9b55212 100644 --- a/client/includes/Store/Sql/PagePropsEntityIdLookup.php +++ b/client/includes/Store/Sql/PagePropsEntityIdLookup.php @@ -44,7 +44,7 @@ class PagePropsEntityIdLookup implements EntityIdLookup { * @return EntityId[] */ public function getEntityIds( array $titles ): array { - $pages = array_filter( $titles, function( Title $title ): bool { + $pages = array_filter( $titles, static function( Title $title ): bool { return $title->canExist(); } ); return array_map( [ $this->idParser, 'parse' ], diff --git a/client/includes/Usage/Sql/EntityUsageTable.php b/client/includes/Usage/Sql/EntityUsageTable.php index 3e44324..5fc15fd 100644 --- a/client/includes/Usage/Sql/EntityUsageTable.php +++ b/client/includes/Usage/Sql/EntityUsageTable.php @@ -217,7 +217,7 @@ class EntityUsageTable { * @return string[] */ private function getEntityIdStrings( array $entityIds ): array { - return array_map( function( EntityId $id ) { + return array_map( static function( EntityId $id ) { return $id->getSerialization(); }, $entityIds ); } diff --git a/client/includes/Usage/Sql/SqlSubscriptionManager.php b/client/includes/Usage/Sql/SqlSubscriptionManager.php index 1369ba9..0ea33ed 100644 --- a/client/includes/Usage/Sql/SqlSubscriptionManager.php +++ b/client/includes/Usage/Sql/SqlSubscriptionManager.php @@ -37,7 +37,7 @@ class SqlSubscriptionManager implements SubscriptionManager { * @return string[] */ private function idsToString( array $entityIds ): array { - return array_map( function( EntityId $id ) { + return array_map( static function( EntityId $id ) { return $id->getSerialization(); }, $entityIds ); } diff --git a/client/includes/Usage/Sql/SqlUsageTrackerSchemaUpdater.php b/client/includes/Usage/Sql/SqlUsageTrackerSchemaUpdater.php index 6601559..eacc291 100644 --- a/client/includes/Usage/Sql/SqlUsageTrackerSchemaUpdater.php +++ b/client/includes/Usage/Sql/SqlUsageTrackerSchemaUpdater.php @@ -56,7 +56,7 @@ class SqlUsageTrackerSchemaUpdater implements LoadExtensionSchemaUpdatesHook { $primer->setProgressReporter( new CallbackMessageReporter( - function( $msg ) use ( $dbUpdater ) { + static function( $msg ) use ( $dbUpdater ) { $dbUpdater->output( "\t$msg\n" ); } ) diff --git a/client/includes/Usage/UsageDeduplicator.php b/client/includes/Usage/UsageDeduplicator.php index 6c53753..899b1d0 100644 --- a/client/includes/Usage/UsageDeduplicator.php +++ b/client/includes/Usage/UsageDeduplicator.php @@ -114,7 +114,7 @@ class UsageDeduplicator { array_walk_recursive( $structuredUsages, - function ( EntityUsage $usage ) use ( &$usages ) { + static function ( EntityUsage $usage ) use ( &$usages ) { $usages[$usage->getIdentityString()] = $usage; } ); diff --git a/client/tests/phpunit/integration/includes/ChangeModification/RecentChangesModificationTestBase.php b/client/tests/phpunit/integration/includes/ChangeModification/RecentChangesModificationTestBase.php index 8caf9d6..9d2bc3a 100644 --- a/client/tests/phpunit/integration/includes/ChangeModification/RecentChangesModificationTestBase.php +++ b/client/tests/phpunit/integration/includes/ChangeModification/RecentChangesModificationTestBase.php @@ -27,7 +27,7 @@ abstract class RecentChangesModificationTestBase extends MediaWikiIntegrationTes protected function revisionIdentifiersToJson( array $revisionIdentifiers ): string { return json_encode( array_map( - function ( RepoRevisionIdentifier $revisionIdentifier ) { + static function ( RepoRevisionIdentifier $revisionIdentifier ) { return $revisionIdentifier->toArray(); }, $revisionIdentifiers diff --git a/client/tests/phpunit/integration/includes/Changes/AffectedPagesFinderTest.php b/client/tests/phpunit/integration/includes/Changes/AffectedPagesFinderTest.php index 12bc0c0..baeaf39 100644 --- a/client/tests/phpunit/integration/includes/Changes/AffectedPagesFinderTest.php +++ b/client/tests/phpunit/integration/includes/Changes/AffectedPagesFinderTest.php @@ -50,7 +50,7 @@ class AffectedPagesFinderTest extends MediaWikiIntegrationTestCase { $titleFactory = $this->createPartialMock( TitleFactory::class, [ 'newFromText' ] ); $titleFactory->method( 'newFromText' ) - ->willReturnCallback( function( $text, $defaultNs = \NS_MAIN ) { + ->willReturnCallback( static function( $text, $defaultNs = \NS_MAIN ) { $title = Title::newFromText( $text, $defaultNs ); if ( !$title ) { diff --git a/client/tests/phpunit/integration/includes/Changes/ChangeHandlerTest.php b/client/tests/phpunit/integration/includes/Changes/ChangeHandlerTest.php index 11cc26a..1f3af8b 100644 --- a/client/tests/phpunit/integration/includes/Changes/ChangeHandlerTest.php +++ b/client/tests/phpunit/integration/includes/Changes/ChangeHandlerTest.php @@ -167,11 +167,11 @@ class ChangeHandlerTest extends MediaWikiIntegrationTestCase { ]; $testHooks = [ - 'WikibaseHandleChange' => function( Change $change ) use ( $spy ) { + 'WikibaseHandleChange' => static function( Change $change ) use ( $spy ) { $spy->handleChangeCallCount++; return true; }, - 'WikibaseHandleChanges' => function( array $changes ) use ( $spy ) { + 'WikibaseHandleChanges' => static function( array $changes ) use ( $spy ) { $spy->handleChangesCallCount++; return true; }, @@ -233,7 +233,7 @@ class ChangeHandlerTest extends MediaWikiIntegrationTestCase { $titleFactory = $this->createPartialMock( TitleFactory::class, [ 'newFromText' ] ); $titleFactory->method( 'newFromText' ) - ->willReturnCallback( function( $text, $defaultNs = \NS_MAIN ) use ( $pageIdsByTitle ) { + ->willReturnCallback( static function( $text, $defaultNs = \NS_MAIN ) use ( $pageIdsByTitle ) { $title = Title::newFromText( $text, $defaultNs ); if ( !$title ) { @@ -321,7 +321,7 @@ class ChangeHandlerTest extends MediaWikiIntegrationTestCase { $usageLookup = $this->createMock( UsageLookup::class ); $usageLookup->method( 'getPagesUsing' ) ->willReturnCallback( - function( $ids, $aspects ) use ( $siteLinkLookup ) { + static function( $ids, $aspects ) use ( $siteLinkLookup ) { $pages = []; foreach ( $ids as $id ) { diff --git a/client/tests/phpunit/integration/includes/Changes/ChangeRunCoalescerTest.php b/client/tests/phpunit/integration/includes/Changes/ChangeRunCoalescerTest.php index 0463a95..9875f2e 100644 --- a/client/tests/phpunit/integration/includes/Changes/ChangeRunCoalescerTest.php +++ b/client/tests/phpunit/integration/includes/Changes/ChangeRunCoalescerTest.php @@ -400,7 +400,7 @@ class ChangeRunCoalescerTest extends MediaWikiIntegrationTestCase { private function getChangeIds( array $changes ) { return array_map( - function( Change $change ) { + static function( Change $change ) { return $change->getId(); }, $changes diff --git a/client/tests/phpunit/integration/includes/Changes/WikiPageUpdaterTest.php b/client/tests/phpunit/integration/includes/Changes/WikiPageUpdaterTest.php index 7937e5d..70ad34e 100644 --- a/client/tests/phpunit/integration/includes/Changes/WikiPageUpdaterTest.php +++ b/client/tests/phpunit/integration/includes/Changes/WikiPageUpdaterTest.php @@ -206,7 +206,7 @@ class WikiPageUpdaterTest extends MediaWikiIntegrationTestCase { $jobQueueGroup->expects( $this->atLeastOnce() ) ->method( 'lazyPush' ) ->with( $this->isInstanceOf( RefreshLinksJob::class ) ) - ->willReturnCallback( function( Job $job ) use ( &$pages, &$rootJobParams ) { + ->willReturnCallback( static function( Job $job ) use ( &$pages, &$rootJobParams ) { $pages[] = $job->getTitle()->getPrefixedDBkey(); $rootJobParams = $job->getRootJobParams(); } ); diff --git a/client/tests/phpunit/integration/includes/DataAccess/Scribunto/WikibaseLibraryInProcessEntityCacheTest.php b/client/tests/phpunit/integration/includes/DataAccess/Scribunto/WikibaseLibraryInProcessEntityCacheTest.php index 7525e49..39d2da3 100644 --- a/client/tests/phpunit/integration/includes/DataAccess/Scribunto/WikibaseLibraryInProcessEntityCacheTest.php +++ b/client/tests/phpunit/integration/includes/DataAccess/Scribunto/WikibaseLibraryInProcessEntityCacheTest.php @@ -38,7 +38,7 @@ class WikibaseLibraryInProcessEntityCacheTest extends WikibaseLibraryTestCase { $entityLookup->expects( $this->exactly( 20 ) ) ->method( 'getEntity' ) ->willReturnCallback( - function( ItemId $id ) { + static function( ItemId $id ) { return new Item( $id ); } ); diff --git a/client/tests/phpunit/integration/includes/DataAccess/Scribunto/WikibaseLibraryTestCase.php b/client/tests/phpunit/integration/includes/DataAccess/Scribunto/WikibaseLibraryTestCase.php index 990928c..f0164af 100644 --- a/client/tests/phpunit/integration/includes/DataAccess/Scribunto/WikibaseLibraryTestCase.php +++ b/client/tests/phpunit/integration/includes/DataAccess/Scribunto/WikibaseLibraryTestCase.php @@ -148,7 +148,7 @@ abstract class WikibaseLibraryTestCase extends LuaEngineTestBase { private function overridePropertyLabelResolver(): void { $propertyLabelResolver = $this->createMock( PropertyLabelResolver::class ); $propertyLabelResolver->method( 'getPropertyIdsForLabels' ) - ->willReturnCallback( function ( array $labels ): array { + ->willReturnCallback( static function ( array $labels ): array { if ( in_array( 'LuaTestStringProperty', $labels ) ) { return [ 'LuaTestStringProperty' => new NumericPropertyId( 'P342' ), @@ -168,7 +168,7 @@ abstract class WikibaseLibraryTestCase extends LuaEngineTestBase { if ( !in_array( 'maplink', $engine->getParser()->getTags() ) ) { $engine->getParser()->setHook( 'maplink', - function() { + static function() { return 'THIS-IS-A-MAP'; } ); diff --git a/client/tests/phpunit/integration/includes/DataAccess/Scribunto/WikitextPreprocessingSnakFormatterTest.php b/client/tests/phpunit/integration/includes/DataAccess/Scribunto/WikitextPreprocessingSnakFormatterTest.php index 6544c80..5114749 100644 --- a/client/tests/phpunit/integration/includes/DataAccess/Scribunto/WikitextPreprocessingSnakFormatterTest.php +++ b/client/tests/phpunit/integration/includes/DataAccess/Scribunto/WikitextPreprocessingSnakFormatterTest.php @@ -57,7 +57,7 @@ class WikitextPreprocessingSnakFormatterTest extends MediaWikiIntegrationTestCas $parser = $this->getServiceContainer()->getParserFactory()->create(); $parser->setHook( 'stripme', - function() { + static function() { return '!STRIPME_WIKITEXT!'; } ); diff --git a/client/tests/phpunit/integration/includes/DescriptionTest.php b/client/tests/phpunit/integration/includes/DescriptionTest.php index 1fafeb4..2d4d709 100644 --- a/client/tests/phpunit/integration/includes/DescriptionTest.php +++ b/client/tests/phpunit/integration/includes/DescriptionTest.php @@ -264,7 +264,7 @@ class DescriptionTest extends MediaWikiIntegrationTestCase { use ( $expectedPageIds, $expectedSources, $descriptionsToReturn, $sourcesToReturn ) { /** @var Title[] $titles */ /** @var string|string[] $sourcesToReturn */ - $pageIds = array_values( array_map( function ( Title $title ) { + $pageIds = array_values( array_map( static function ( Title $title ) { return $title->getArticleID(); }, $titles ) ); // Should be a sort-insensitive check but everything is sorted anyway. diff --git a/client/tests/phpunit/integration/includes/Hooks/ChangesListLinesHandlerTest.php b/client/tests/phpunit/integration/includes/Hooks/ChangesListLinesHandlerTest.php index aa76683..f0d9bb2 100644 --- a/client/tests/phpunit/integration/includes/Hooks/ChangesListLinesHandlerTest.php +++ b/client/tests/phpunit/integration/includes/Hooks/ChangesListLinesHandlerTest.php @@ -189,7 +189,7 @@ class ChangesListLinesHandlerTest extends MediaWikiIntegrationTestCase { $changesList = $this->createMock( OldChangesList::class ); $changesList->expects( $this->once() ) ->method( 'recentChangesFlags' ) - ->willReturnCallback( function ( $flags, $sep ) { + ->willReturnCallback( static function ( $flags, $sep ) { return implode( ',', array_keys( $flags, true ) ); } ); $changesList->method( 'getUser' ) diff --git a/client/tests/phpunit/integration/includes/Hooks/LangLinkHandlerTest.php b/client/tests/phpunit/integration/includes/Hooks/LangLinkHandlerTest.php index b76951c..5efc0b3 100644 --- a/client/tests/phpunit/integration/includes/Hooks/LangLinkHandlerTest.php +++ b/client/tests/phpunit/integration/includes/Hooks/LangLinkHandlerTest.php @@ -135,7 +135,7 @@ class LangLinkHandlerTest extends MediaWikiIntegrationTestCase { // strip "wiki" suffix $key = preg_replace( '/wiki$/', '', $link->getSiteId() ); - $badgesByPrefix[$key] = array_map( function( ItemId $id ) { + $badgesByPrefix[$key] = array_map( static function( ItemId $id ) { return $id->getSerialization(); }, $badges ); } diff --git a/client/tests/phpunit/integration/includes/Hooks/SidebarHookHandlerTest.php b/client/tests/phpunit/integration/includes/Hooks/SidebarHookHandlerTest.php index f8b1977..da6474a 100644 --- a/client/tests/phpunit/integration/includes/Hooks/SidebarHookHandlerTest.php +++ b/client/tests/phpunit/integration/includes/Hooks/SidebarHookHandlerTest.php @@ -96,7 +96,7 @@ class SidebarHookHandlerTest extends MediaWikiIntegrationTestCase { $handler->onSidebarBeforeOutput( $skin, $sidebar ); - $sidebarFilteredForWikibaseLink = array_filter( $sidebar['wikibase-otherprojects'], function( $link ){ + $sidebarFilteredForWikibaseLink = array_filter( $sidebar['wikibase-otherprojects'], static function( $link ){ return $link['id'] === 't-wikibase'; } ); $this->assertCount( 1, $sidebarFilteredForWikibaseLink ); diff --git a/client/tests/phpunit/integration/includes/NamespaceCheckerTest.php b/client/tests/phpunit/integration/includes/NamespaceCheckerTest.php index 4a22b5a..1f1051d 100644 --- a/client/tests/phpunit/integration/includes/NamespaceCheckerTest.php +++ b/client/tests/phpunit/integration/includes/NamespaceCheckerTest.php @@ -90,11 +90,11 @@ class NamespaceCheckerTest extends MediaWikiIntegrationTestCase { // actual test (maybe spillover from a different test?). Work around the issue with // callbacks until the actual problem is resolved. return [ - [ [], [], function () { + [ [], [], static function () { return MediaWikiServices::getInstance()->getNamespaceInfo()->getValidNamespaces(); } ], // #0 [ [], [ NS_MAIN ], [ NS_MAIN ] ], // #1 - [ [ NS_USER_TALK ], [], function () { + [ [ NS_USER_TALK ], [], static function () { return array_diff( MediaWikiServices::getInstance()->getNamespaceInfo()->getValidNamespaces(), [ NS_USER_TALK ] diff --git a/client/tests/phpunit/integration/includes/Specials/SpecialPagesWithBadgesTest.php b/client/tests/phpunit/integration/includes/Specials/SpecialPagesWithBadgesTest.php index d125287..b7ebe05 100644 --- a/client/tests/phpunit/integration/includes/Specials/SpecialPagesWithBadgesTest.php +++ b/client/tests/phpunit/integration/includes/Specials/SpecialPagesWithBadgesTest.php @@ -31,7 +31,7 @@ class SpecialPagesWithBadgesTest extends SpecialPageTestBase { private function getLabelDescriptionLookupFactory(): FallbackLabelDescriptionLookupFactory { $labelLookup = $this->createMock( FallbackLabelDescriptionLookup::class ); $labelLookup->method( 'getLabel' ) - ->willReturnCallback( function( ItemId $id ): ?TermFallback { + ->willReturnCallback( static function( ItemId $id ): ?TermFallback { return new TermFallback( 'en', 'Label of ' . $id->getSerialization(), diff --git a/client/tests/phpunit/integration/includes/Store/Sql/UnexpectedUnconnectedPagePrimerTest.php b/client/tests/phpunit/integration/includes/Store/Sql/UnexpectedUnconnectedPagePrimerTest.php index d5714fb..b192623 100644 --- a/client/tests/phpunit/integration/includes/Store/Sql/UnexpectedUnconnectedPagePrimerTest.php +++ b/client/tests/phpunit/integration/includes/Store/Sql/UnexpectedUnconnectedPagePrimerTest.php @@ -45,7 +45,7 @@ class UnexpectedUnconnectedPagePrimerTest extends MediaWikiIntegrationTestCase { } public static function insertPagePropProvider(): array { - $convertToLegacy = function( $row ) { + $convertToLegacy = static function( $row ) { if ( $row[1] === 'unexpectedUnconnectedPage' ) { // The value doesn't matter and to make sure we actually need a change, // don't use -$this->getDefaultWikitextNS() (as that could be 0). diff --git a/client/tests/phpunit/integration/includes/Usage/Sql/EntityUsageTableTest.php b/client/tests/phpunit/integration/includes/Usage/Sql/EntityUsageTableTest.php index 131f859..d6de942 100644 --- a/client/tests/phpunit/integration/includes/Usage/Sql/EntityUsageTableTest.php +++ b/client/tests/phpunit/integration/includes/Usage/Sql/EntityUsageTableTest.php @@ -142,7 +142,7 @@ class EntityUsageTableTest extends MediaWikiIntegrationTestCase { } private function getUsageStrings( array $usages ) { - $strings = array_map( function ( EntityUsage $usage ) { + $strings = array_map( static function ( EntityUsage $usage ) { return $usage->getIdentityString(); }, array_values( $usages ) ); diff --git a/client/tests/phpunit/integration/includes/Usage/UsageLookupContractTester.php b/client/tests/phpunit/integration/includes/Usage/UsageLookupContractTester.php index 97d63a1..a82593f 100644 --- a/client/tests/phpunit/integration/includes/Usage/UsageLookupContractTester.php +++ b/client/tests/phpunit/integration/includes/Usage/UsageLookupContractTester.php @@ -194,7 +194,7 @@ class UsageLookupContractTester { * @return string[] */ public function getUsageStrings( array $usages ) { - $strings = array_map( function( EntityUsage $usage ) { + $strings = array_map( static function( EntityUsage $usage ) { return $usage->getIdentityString(); }, $usages ); diff --git a/client/tests/phpunit/integration/includes/Usage/UsageTrackerContractTester.php b/client/tests/phpunit/integration/includes/Usage/UsageTrackerContractTester.php index 001d907..b25b375 100644 --- a/client/tests/phpunit/integration/includes/Usage/UsageTrackerContractTester.php +++ b/client/tests/phpunit/integration/includes/Usage/UsageTrackerContractTester.php @@ -156,7 +156,7 @@ class UsageTrackerContractTester { */ public function getUsageStrings( array $usages ) { return array_values( - array_map( function( EntityUsage $usage ) { + array_map( static function( EntityUsage $usage ) { return $usage->getIdentityString(); }, $usages ) ); diff --git a/client/tests/phpunit/integration/includes/Usage/UsageTrackingIntegrationTest.php b/client/tests/phpunit/integration/includes/Usage/UsageTrackingIntegrationTest.php index 3e4fa0b..57dd0dc 100644 --- a/client/tests/phpunit/integration/includes/Usage/UsageTrackingIntegrationTest.php +++ b/client/tests/phpunit/integration/includes/Usage/UsageTrackingIntegrationTest.php @@ -160,7 +160,7 @@ class UsageTrackingIntegrationTest extends MediaWikiIntegrationTestCase { * @return string[] */ private function getUsageStrings( array $usages ) { - $strings = array_map( function ( EntityUsage $usage ) { + $strings = array_map( static function ( EntityUsage $usage ) { return $usage->getIdentityString(); }, $usages ); diff --git a/client/tests/phpunit/mocks/Usage/UsageAccumulatorContractTester.php b/client/tests/phpunit/mocks/Usage/UsageAccumulatorContractTester.php index 8bda06e..85480ca 100644 --- a/client/tests/phpunit/mocks/Usage/UsageAccumulatorContractTester.php +++ b/client/tests/phpunit/mocks/Usage/UsageAccumulatorContractTester.php @@ -164,7 +164,7 @@ class UsageAccumulatorContractTester { */ private function getIdentityStrings( array $usages ) { return array_values( - array_map( function( EntityUsage $usage ) { + array_map( static function( EntityUsage $usage ) { return $usage->getIdentityString(); }, $usages ) ); diff --git a/client/tests/phpunit/unit/includes/Changes/InjectRCRecordsJobTest.php b/client/tests/phpunit/unit/includes/Changes/InjectRCRecordsJobTest.php index 48fe5c4..59b6fec 100644 --- a/client/tests/phpunit/unit/includes/Changes/InjectRCRecordsJobTest.php +++ b/client/tests/phpunit/unit/includes/Changes/InjectRCRecordsJobTest.php @@ -56,7 +56,7 @@ class InjectRCRecordsJobTest extends TestCase { } $changeLookup->method( 'loadByChangeIds' ) - ->willReturnCallback( function ( $ids ) use ( $changes ) { + ->willReturnCallback( static function ( $ids ) use ( $changes ) { return array_values( array_intersect_key( $changes, array_flip( $ids ) ) ); } ); @@ -388,7 +388,7 @@ class InjectRCRecordsJobTest extends TestCase { */ private function getTitleIDs( array $titles ): array { return array_map( - function( Title $title ) { + static function( Title $title ) { return $title->getArticleID(); }, $titles @@ -402,7 +402,7 @@ class InjectRCRecordsJobTest extends TestCase { */ private function getTitleDBKeys( array $titles ): array { return array_map( - function( Title $title ) { + static function( Title $title ) { return $title->getPrefixedDBkey(); }, $titles diff --git a/client/tests/phpunit/unit/includes/DataAccess/ClientSiteLinkTitleLookupTest.php b/client/tests/phpunit/unit/includes/DataAccess/ClientSiteLinkTitleLookupTest.php index 461955b..72f72f5 100644 --- a/client/tests/phpunit/unit/includes/DataAccess/ClientSiteLinkTitleLookupTest.php +++ b/client/tests/phpunit/unit/includes/DataAccess/ClientSiteLinkTitleLookupTest.php @@ -31,7 +31,7 @@ class ClientSiteLinkTitleLookupTest extends \PHPUnit\Framework\TestCase { $siteLinkLookup = $this->createMock( SiteLinkLookup::class ); $siteLinkLookup->method( 'getLinks' ) ->with( [ $id->getNumericId() ], [ $clientSiteId ] ) - ->willReturnCallback( function ( array $numericIds, array $siteIds ) { + ->willReturnCallback( static function ( array $numericIds, array $siteIds ) { // TODO: SiteLinkLookup::getLinks does have a bad, bad interface. return $siteIds === [ 'dewiki' ] ? [ [ 1 => 'Berlin' ] ] : []; } ); diff --git a/client/tests/phpunit/unit/includes/DataAccess/DataAccessSnakFormatterFactoryTest.php b/client/tests/phpunit/unit/includes/DataAccess/DataAccessSnakFormatterFactoryTest.php index 66e99e6..011452c 100644 --- a/client/tests/phpunit/unit/includes/DataAccess/DataAccessSnakFormatterFactoryTest.php +++ b/client/tests/phpunit/unit/includes/DataAccess/DataAccessSnakFormatterFactoryTest.php @@ -74,7 +74,7 @@ class DataAccessSnakFormatterFactoryTest extends \PHPUnit\Framework\TestCase { $snakFormatter = $this->createMock( SnakFormatter::class ); $snakFormatter->method( 'formatSnak' ) - ->willReturnCallback( function( PropertyValueSnak $snak ) { + ->willReturnCallback( static function( PropertyValueSnak $snak ) { return $snak->getDataValue()->getValue(); } ); diff --git a/client/tests/phpunit/unit/includes/DataAccess/ParserFunctions/LanguageAwareRendererTest.php b/client/tests/phpunit/unit/includes/DataAccess/ParserFunctions/LanguageAwareRendererTest.php index a61a949..5f07430 100644 --- a/client/tests/phpunit/unit/includes/DataAccess/ParserFunctions/LanguageAwareRendererTest.php +++ b/client/tests/phpunit/unit/includes/DataAccess/ParserFunctions/LanguageAwareRendererTest.php @@ -212,7 +212,7 @@ class LanguageAwareRendererTest extends \PHPUnit\Framework\TestCase { $propertyIdResolver = $this->createMock( PropertyIdResolver::class ); $propertyIdResolver->method( 'resolvePropertyId' ) - ->willReturnCallback( function( $propertyLabelOrId, $languageCode ) { + ->willReturnCallback( static function( $propertyLabelOrId, $languageCode ) { throw new PropertyLabelNotResolvedException( $propertyLabelOrId, $languageCode ); } ); @@ -240,7 +240,7 @@ class LanguageAwareRendererTest extends \PHPUnit\Framework\TestCase { $snakFormatter->method( 'formatSnak' ) ->willReturnCallback( - function ( Snak $snak ) { + static function ( Snak $snak ) { if ( $snak instanceof PropertyValueSnak ) { $value = $snak->getDataValue(); if ( $value instanceof StringValue ) { diff --git a/client/tests/phpunit/unit/includes/DataAccess/ParserFunctions/StatementGroupRendererFactoryTest.php b/client/tests/phpunit/unit/includes/DataAccess/ParserFunctions/StatementGroupRendererFactoryTest.php index a107c2f..3bde14b 100644 --- a/client/tests/phpunit/unit/includes/DataAccess/ParserFunctions/StatementGroupRendererFactoryTest.php +++ b/client/tests/phpunit/unit/includes/DataAccess/ParserFunctions/StatementGroupRendererFactoryTest.php @@ -260,7 +260,7 @@ class StatementGroupRendererFactoryTest extends \PHPUnit\Framework\TestCase { $snakListFinder = $this->createMock( SnaksFinder::class ); $snakListFinder->method( 'findSnaks' ) - ->willReturnCallback( function( + ->willReturnCallback( static function( StatementListProvider $statementListProvider, NumericPropertyId $propertyId, ?array $acceptableRanks @@ -295,7 +295,7 @@ class StatementGroupRendererFactoryTest extends \PHPUnit\Framework\TestCase { $entityLookup = $this->createMock( EntityLookup::class ); $entityLookup->method( 'getEntity' ) - ->willReturnCallback( function ( EntityId $id ) { + ->willReturnCallback( static function ( EntityId $id ) { return new Item( $id ); } ); diff --git a/client/tests/phpunit/unit/includes/DataAccess/ParserFunctions/VariantsAwareRendererTest.php b/client/tests/phpunit/unit/includes/DataAccess/ParserFunctions/VariantsAwareRendererTest.php index 25a4f7d..475dfeb 100644 --- a/client/tests/phpunit/unit/includes/DataAccess/ParserFunctions/VariantsAwareRendererTest.php +++ b/client/tests/phpunit/unit/includes/DataAccess/ParserFunctions/VariantsAwareRendererTest.php @@ -92,7 +92,7 @@ class VariantsAwareRendererTest extends \PHPUnit\Framework\TestCase { $languageRenderer->method( 'render' ) ->willReturnCallback( - function ( EntityId $entityId, $propertyLabelOrId ) use ( $languageCode ) { + static function ( EntityId $entityId, $propertyLabelOrId ) use ( $languageCode ) { if ( $propertyLabelOrId === 'url' ) { return 'http://wikipedia.de'; } diff --git a/client/tests/phpunit/unit/includes/DataAccess/Scribunto/CachingFallbackBasedTermLookupTest.php b/client/tests/phpunit/unit/includes/DataAccess/Scribunto/CachingFallbackBasedTermLookupTest.php index 9303999..b33708e 100644 --- a/client/tests/phpunit/unit/includes/DataAccess/Scribunto/CachingFallbackBasedTermLookupTest.php +++ b/client/tests/phpunit/unit/includes/DataAccess/Scribunto/CachingFallbackBasedTermLookupTest.php @@ -166,12 +166,12 @@ class CachingFallbackBasedTermLookupTest extends TestCase { ], ]; - $datasetLabels = array_map( function( $testCase ) { + $datasetLabels = array_map( static function( $testCase ) { $testCase[] = TermTypes::TYPE_LABEL; return $testCase; }, $dataset ); - $datasetDescriptions = array_map( function( $testCase ) { + $datasetDescriptions = array_map( static function( $testCase ) { $testCase[] = TermTypes::TYPE_DESCRIPTION; return $testCase; }, $dataset ); @@ -292,7 +292,7 @@ class CachingFallbackBasedTermLookupTest extends TestCase { $enTerm = self::getTermFallback( 'cat', 'en' ); $this->contentLanguages->method( 'hasLanguage' ) - ->willReturnCallback( function ( $languageCode ) { + ->willReturnCallback( static function ( $languageCode ) { return $languageCode === 'en'; } ); $this->mockHasContentLanguage( true ); diff --git a/client/tests/phpunit/unit/includes/DataAccess/Scribunto/LuaFunctionCallTrackerTest.php b/client/tests/phpunit/unit/includes/DataAccess/Scribunto/LuaFunctionCallTrackerTest.php index 6318c82..0155c88 100644 --- a/client/tests/phpunit/unit/includes/DataAccess/Scribunto/LuaFunctionCallTrackerTest.php +++ b/client/tests/phpunit/unit/includes/DataAccess/Scribunto/LuaFunctionCallTrackerTest.php @@ -63,7 +63,7 @@ class LuaFunctionCallTrackerTest extends \PHPUnit\Framework\TestCase { $statsdFactory->expects( $this->exactly( count( $expected ) ) ) ->method( 'updateCount' ) ->with( $this->isType( 'string' ), 1 / $trackLuaFunctionCallsSampleRate ) - ->willReturnCallback( function ( $key ) use ( &$keyBuffer ) { + ->willReturnCallback( static function ( $key ) use ( &$keyBuffer ) { $keyBuffer[] = $key; } ); diff --git a/client/tests/phpunit/unit/includes/DataAccess/Scribunto/SnakSerializationRendererTest.php b/client/tests/phpunit/unit/includes/DataAccess/Scribunto/SnakSerializationRendererTest.php index 8f47162..54581f7 100644 --- a/client/tests/phpunit/unit/includes/DataAccess/Scribunto/SnakSerializationRendererTest.php +++ b/client/tests/phpunit/unit/includes/DataAccess/Scribunto/SnakSerializationRendererTest.php @@ -44,7 +44,7 @@ class SnakSerializationRendererTest extends \PHPUnit\Framework\TestCase { private function getSnakRenderer() { $snakFormatter = $this->createMock( SnakFormatter::class ); $snakFormatter->method( 'formatSnak' ) - ->willReturnCallback( function ( PropertyValueSnak $snak ) { + ->willReturnCallback( static function ( PropertyValueSnak $snak ) { $value = $snak->getDataValue(); if ( $value instanceof EntityIdValue ) { return $value->getEntityId()->getSerialization(); diff --git a/client/tests/phpunit/unit/includes/DataAccess/StatementTransclusionInteractorTest.php b/client/tests/phpunit/unit/includes/DataAccess/StatementTransclusionInteractorTest.php index 0ff271c..30b0541 100644 --- a/client/tests/phpunit/unit/includes/DataAccess/StatementTransclusionInteractorTest.php +++ b/client/tests/phpunit/unit/includes/DataAccess/StatementTransclusionInteractorTest.php @@ -198,7 +198,7 @@ class StatementTransclusionInteractorTest extends \PHPUnit\Framework\TestCase { $propertyIdResolver = $this->createMock( PropertyIdResolver::class ); $propertyIdResolver->method( 'resolvePropertyId' ) - ->willReturnCallback( function( $propertyLabelOrId, $languageCode ) { + ->willReturnCallback( static function( $propertyLabelOrId, $languageCode ) { throw new PropertyLabelNotResolvedException( $propertyLabelOrId, $languageCode ); } ); @@ -216,7 +216,7 @@ class StatementTransclusionInteractorTest extends \PHPUnit\Framework\TestCase { $lookup = $this->createMock( EntityRevisionLookup::class ); $lookup->method( 'getEntityRevision' ) - ->willReturnCallback( function( EntityId $entityId ) { + ->willReturnCallback( static function( EntityId $entityId ) { switch ( $entityId->getSerialization() ) { case 'Q42': return new EntityRevision( new Item( new ItemId( 'Q42' ) ) ); @@ -243,7 +243,7 @@ class StatementTransclusionInteractorTest extends \PHPUnit\Framework\TestCase { $snakFormatter->method( 'formatSnak' ) ->willReturnCallback( - function ( Snak $snak ) { + static function ( Snak $snak ) { if ( $snak instanceof PropertyValueSnak ) { $value = $snak->getDataValue(); if ( $value instanceof StringValue ) { diff --git a/client/tests/phpunit/unit/includes/Hooks/EditActionHookHandlerTest.php b/client/tests/phpunit/unit/includes/Hooks/EditActionHookHandlerTest.php index 0b86c55..cdaf3c0 100644 --- a/client/tests/phpunit/unit/includes/Hooks/EditActionHookHandlerTest.php +++ b/client/tests/phpunit/unit/includes/Hooks/EditActionHookHandlerTest.php @@ -47,7 +47,7 @@ class EditActionHookHandlerTest extends \PHPUnit\Framework\TestCase { } public static function handleProvider() { - $expectedEditFormText = function ( IContextSource $context, string $link ) { + $expectedEditFormText = static function ( IContextSource $context, string $link ) { $explanation = $context->msg( 'wikibase-pageinfo-entity-usage' )->escaped(); $header = '<div class="wikibase-entity-usage"><div class="wikibase-entityusage-explanation">'; $header .= "<p>$explanation\n</p></div>"; @@ -95,7 +95,7 @@ class EditActionHookHandlerTest extends \PHPUnit\Framework\TestCase { ->getMock(); $repoLinker->method( 'buildEntityLink' ) - ->willReturnCallback( function ( + ->willReturnCallback( static function ( EntityId $entityId, array $classes = [], $text = null @@ -146,7 +146,7 @@ class EditActionHookHandlerTest extends \PHPUnit\Framework\TestCase { $lookup = $this->createMock( FallbackLabelDescriptionLookup::class ); $lookup->method( 'getLabel' ) - ->willReturnCallback( function ( EntityId $entityId ) { + ->willReturnCallback( static function ( EntityId $entityId ) { switch ( $entityId->getSerialization() ) { case 'Q4': return new Term( 'en', 'Berlin' ); diff --git a/client/tests/phpunit/unit/includes/Hooks/ExtensionLoadHandlerTest.php b/client/tests/phpunit/unit/includes/Hooks/ExtensionLoadHandlerTest.php index 2076576..468a514 100644 --- a/client/tests/phpunit/unit/includes/Hooks/ExtensionLoadHandlerTest.php +++ b/client/tests/phpunit/unit/includes/Hooks/ExtensionLoadHandlerTest.php @@ -27,7 +27,7 @@ class ExtensionLoadHandlerTest extends TestCase { private function getFauxHookContainer( &$hooks ) { $container = $this->createMock( HookContainer::class ); $container->method( 'register' )->willReturnCallback( - function ( $name, $handler ) use ( &$hooks ) { + static function ( $name, $handler ) use ( &$hooks ) { $hooks[$name][] = $handler; } ); diff --git a/client/tests/phpunit/unit/includes/Hooks/InfoActionHookHandlerTest.php b/client/tests/phpunit/unit/includes/Hooks/InfoActionHookHandlerTest.php index b999754..b9ebd8e 100644 --- a/client/tests/phpunit/unit/includes/Hooks/InfoActionHookHandlerTest.php +++ b/client/tests/phpunit/unit/includes/Hooks/InfoActionHookHandlerTest.php @@ -183,7 +183,7 @@ class InfoActionHookHandlerTest extends \PHPUnit\Framework\TestCase { ->getMock(); $repoLinker->method( 'buildEntityLink' ) - ->willReturnCallback( function ( + ->willReturnCallback( static function ( EntityId $entityId, array $classes = [], $text = null @@ -265,7 +265,7 @@ class InfoActionHookHandlerTest extends \PHPUnit\Framework\TestCase { $lookup = $this->createMock( FallbackLabelDescriptionLookup::class ); $lookup->method( 'getLabel' ) - ->willReturnCallback( function ( EntityId $entityId ) { + ->willReturnCallback( static function ( EntityId $entityId ) { switch ( $entityId->getSerialization() ) { case 'Q4': return new Term( 'en', 'Berlin' ); diff --git a/client/tests/phpunit/unit/includes/Hooks/LanguageLinkBadgeDisplayTest.php b/client/tests/phpunit/unit/includes/Hooks/LanguageLinkBadgeDisplayTest.php index ea02bf4..e9cf710 100644 --- a/client/tests/phpunit/unit/includes/Hooks/LanguageLinkBadgeDisplayTest.php +++ b/client/tests/phpunit/unit/includes/Hooks/LanguageLinkBadgeDisplayTest.php @@ -33,7 +33,7 @@ class LanguageLinkBadgeDisplayTest extends \PHPUnit\Framework\TestCase { $labelLookup = $this->createMock( LabelDescriptionLookup::class ); $labelLookup->method( 'getLabel' ) - ->willReturnCallback( function( EntityId $entityId ) { + ->willReturnCallback( static function( EntityId $entityId ) { switch ( $entityId->getSerialization() ) { case 'Q3': return new Term( 'de', 'Lesenswerter Artikel' ); diff --git a/client/tests/phpunit/unit/includes/Hooks/SiteLinksForDisplayLookupTest.php b/client/tests/phpunit/unit/includes/Hooks/SiteLinksForDisplayLookupTest.php index b0a8f52..ee8cdeb 100644 --- a/client/tests/phpunit/unit/includes/Hooks/SiteLinksForDisplayLookupTest.php +++ b/client/tests/phpunit/unit/includes/Hooks/SiteLinksForDisplayLookupTest.php @@ -116,7 +116,7 @@ class SiteLinksForDisplayLookupTest extends \MediaWikiUnitTestCase { $links->toArray(), $usageAccumulator, ] ) - ->willReturnCallback( function ( string $hook, array $args ) { + ->willReturnCallback( static function ( string $hook, array $args ) { $links = &$args[1]; $links['frwikisource'] = new SiteLink( 'frwikisource', 'FooSource' ); $links['enwiki'] = new SiteLink( 'enwiki', 'Foo en', [ new ItemId( 'Q42' ) ] ); diff --git a/client/tests/phpunit/unit/includes/Hooks/SkinAfterPortletHandlerTest.php b/client/tests/phpunit/unit/includes/Hooks/SkinAfterPortletHandlerTest.php index 2bae9aa..d2d6a67 100644 --- a/client/tests/phpunit/unit/includes/Hooks/SkinAfterPortletHandlerTest.php +++ b/client/tests/phpunit/unit/includes/Hooks/SkinAfterPortletHandlerTest.php @@ -157,7 +157,7 @@ class SkinAfterPortletHandlerTest extends TestCase { $context->method( 'getLanguage' ) ->willReturn( $lang ); $context->method( 'msg' ) - ->willReturnCallback( function ( $key ) use ( $lang ) { + ->willReturnCallback( static function ( $key ) use ( $lang ) { return ( new RawMessage( "($key)" ) )->inLanguage( $lang ); } ); $context->method( 'getConfig' ) diff --git a/client/tests/phpunit/unit/includes/ServiceWiring/DataTypeDefinitionsTest.php b/client/tests/phpunit/unit/includes/ServiceWiring/DataTypeDefinitionsTest.php index e22efc6..f58caeb 100644 --- a/client/tests/phpunit/unit/includes/ServiceWiring/DataTypeDefinitionsTest.php +++ b/client/tests/phpunit/unit/includes/ServiceWiring/DataTypeDefinitionsTest.php @@ -35,7 +35,7 @@ class DataTypeDefinitionsTest extends ServiceWiringTestCase { public function testRunsHook(): void { $this->configureHookContainer( [ - 'WikibaseClientDataTypes' => [ function ( array &$dataTypes ) { + 'WikibaseClientDataTypes' => [ static function ( array &$dataTypes ) { $dataTypes['PT:test'] = [ 'value-type' => 'string' ]; } ], ] ); diff --git a/client/tests/phpunit/unit/includes/ServiceWiring/DataTypeFactoryTest.php b/client/tests/phpunit/unit/includes/ServiceWiring/DataTypeFactoryTest.php index fb010b2..979cdb8 100644 --- a/client/tests/phpunit/unit/includes/ServiceWiring/DataTypeFactoryTest.php +++ b/client/tests/phpunit/unit/includes/ServiceWiring/DataTypeFactoryTest.php @@ -24,7 +24,7 @@ class DataTypeFactoryTest extends ServiceWiringTestCase { $this->mockService( 'WikibaseClient.DataTypeDefinitions', new DataTypeDefinitions( array_fill_keys( - array_map( function ( $dataTypeId ) { + array_map( static function ( $dataTypeId ) { return 'PT:' . $dataTypeId; }, $mockDataTypeIds ), [ 'value-type' => 'string' ] diff --git a/client/tests/phpunit/unit/includes/ServiceWiring/DataValueDeserializerTest.php b/client/tests/phpunit/unit/includes/ServiceWiring/DataValueDeserializerTest.php index 704990c..d6b6dc0 100644 --- a/client/tests/phpunit/unit/includes/ServiceWiring/DataValueDeserializerTest.php +++ b/client/tests/phpunit/unit/includes/ServiceWiring/DataValueDeserializerTest.php @@ -33,7 +33,7 @@ class DataValueDeserializerTest extends ServiceWiringTestCase { 'wikibase-entityid', ]; - yield from array_map( function ( $dataValue ) { + yield from array_map( static function ( $dataValue ) { return [ $dataValue ]; }, $dataValues ); } diff --git a/client/tests/phpunit/unit/includes/ServiceWiring/EntityDifferTest.php b/client/tests/phpunit/unit/includes/ServiceWiring/EntityDifferTest.php index 445b499..4806d7d 100644 --- a/client/tests/phpunit/unit/includes/ServiceWiring/EntityDifferTest.php +++ b/client/tests/phpunit/unit/includes/ServiceWiring/EntityDifferTest.php @@ -26,13 +26,13 @@ class EntityDifferTest extends ServiceWiringTestCase { $this->mockService( 'WikibaseClient.EntityTypeDefinitions', new EntityTypeDefinitions( [ 'test1' => [ - EntityTypeDefinitions::ENTITY_DIFFER_STRATEGY_BUILDER => function () use ( &$calls1, $strategy1 ) { + EntityTypeDefinitions::ENTITY_DIFFER_STRATEGY_BUILDER => static function () use ( &$calls1, $strategy1 ) { $calls1++; return $strategy1; }, ], 'test2' => [ - EntityTypeDefinitions::ENTITY_DIFFER_STRATEGY_BUILDER => function () use ( &$calls2, $strategy2 ) { + EntityTypeDefinitions::ENTITY_DIFFER_STRATEGY_BUILDER => static function () use ( &$calls2, $strategy2 ) { $calls2++; return $strategy2; }, diff --git a/client/tests/phpunit/unit/includes/ServiceWiring/EntityIdComposerTest.php b/client/tests/phpunit/unit/includes/ServiceWiring/EntityIdComposerTest.php index 3d350bc..d6f89c3 100644 --- a/client/tests/phpunit/unit/includes/ServiceWiring/EntityIdComposerTest.php +++ b/client/tests/phpunit/unit/includes/ServiceWiring/EntityIdComposerTest.php @@ -22,7 +22,7 @@ class EntityIdComposerTest extends ServiceWiringTestCase { $this->mockService( 'WikibaseClient.EntityTypeDefinitions', new EntityTypeDefinitions( [ 'test' => [ - EntityTypeDefinitions::ENTITY_ID_COMPOSER_CALLBACK => function ( $uniquePart ) { + EntityTypeDefinitions::ENTITY_ID_COMPOSER_CALLBACK => static function ( $uniquePart ) { return new ItemId( 'Q' . $uniquePart ); }, ], diff --git a/client/tests/phpunit/unit/includes/ServiceWiring/EntityIdParserTest.php b/client/tests/phpunit/unit/includes/ServiceWiring/EntityIdParserTest.php index 64b298c..8c983b8 100644 --- a/client/tests/phpunit/unit/includes/ServiceWiring/EntityIdParserTest.php +++ b/client/tests/phpunit/unit/includes/ServiceWiring/EntityIdParserTest.php @@ -18,7 +18,7 @@ use Wikibase\Lib\EntityTypeDefinitions; */ class EntityIdParserTest extends ServiceWiringTestCase { private function makeIdBuilder( $prefix ): callable { - return function ( $serialization ) use ( $prefix ) { + return static function ( $serialization ) use ( $prefix ) { return new ItemId( 'Q' . $prefix . substr( $serialization, 1 ) ); }; } diff --git a/client/tests/phpunit/unit/includes/ServiceWiring/EntityNamespaceLookupTest.php b/client/tests/phpunit/unit/includes/ServiceWiring/EntityNamespaceLookupTest.php index decf7ee..5f11a8c 100644 --- a/client/tests/phpunit/unit/includes/ServiceWiring/EntityNamespaceLookupTest.php +++ b/client/tests/phpunit/unit/includes/ServiceWiring/EntityNamespaceLookupTest.php @@ -21,7 +21,7 @@ class EntityNamespaceLookupTest extends ServiceWiringTestCase { private function getEntitySources( array ...$entityNSDefinitions ): EntitySourceDefinitions { return new EntitySourceDefinitions( array_map( - function ( array $nsDefinitions, int $idx ): DatabaseEntitySource { + static function ( array $nsDefinitions, int $idx ): DatabaseEntitySource { return new DatabaseEntitySource( 'test-' . $idx, false, diff --git a/client/tests/phpunit/unit/includes/ServiceWiring/EntityTypeDefinitionsTest.php b/client/tests/phpunit/unit/includes/ServiceWiring/EntityTypeDefinitionsTest.php index 5c111c0..a4feff1 100644 --- a/client/tests/phpunit/unit/includes/ServiceWiring/EntityTypeDefinitionsTest.php +++ b/client/tests/phpunit/unit/includes/ServiceWiring/EntityTypeDefinitionsTest.php @@ -24,7 +24,7 @@ class EntityTypeDefinitionsTest extends ServiceWiringTestCase { public function testRunsHook(): void { $this->configureHookContainer( [ - 'WikibaseClientEntityTypes' => [ function ( array &$entityTypes ) { + 'WikibaseClientEntityTypes' => [ static function ( array &$entityTypes ) { $entityTypes['test'] = []; } ], ] ); diff --git a/client/tests/phpunit/unit/includes/ServiceWiring/WikibaseContentLanguagesTest.php b/client/tests/phpunit/unit/includes/ServiceWiring/WikibaseContentLanguagesTest.php index e451453..daad11d 100644 --- a/client/tests/phpunit/unit/includes/ServiceWiring/WikibaseContentLanguagesTest.php +++ b/client/tests/phpunit/unit/includes/ServiceWiring/WikibaseContentLanguagesTest.php @@ -21,7 +21,7 @@ class WikibaseContentLanguagesTest extends ServiceWiringTestCase { public function testConstruction() { $testLanguages = new StaticContentLanguages( [ 'test' ] ); $this->configureHookContainer( [ - 'WikibaseContentLanguages' => [ function ( array &$contentLanguages ) use ( $testLanguages ) { + 'WikibaseContentLanguages' => [ static function ( array &$contentLanguages ) use ( $testLanguages ) { $contentLanguages['test'] = $testLanguages; } ], ] ); diff --git a/client/tests/phpunit/unit/includes/Store/DescriptionLookupTest.php b/client/tests/phpunit/unit/includes/Store/DescriptionLookupTest.php index f416454..89d91ff 100644 --- a/client/tests/phpunit/unit/includes/Store/DescriptionLookupTest.php +++ b/client/tests/phpunit/unit/includes/Store/DescriptionLookupTest.php @@ -201,13 +201,13 @@ class DescriptionLookupTest extends TestCase { $pageProps = $this->createMock( PageProps::class ); $pageProps->method( 'getProperties' ) ->with( $this->anything(), DescriptionLookup::LOCAL_PROPERTY_NAME ) - ->willReturnCallback( function ( $titlesByPageId ) use ( $localDescriptions ) { - return array_filter( array_map( function ( Title $title ) use ( $localDescriptions ) { + ->willReturnCallback( static function ( $titlesByPageId ) use ( $localDescriptions ) { + return array_filter( array_map( static function ( Title $title ) use ( $localDescriptions ) { if ( !array_key_exists( $title->getArticleID(), $localDescriptions ) ) { return null; } return $localDescriptions[$title->getArticleID()]; - }, $titlesByPageId ), function ( $description ) { + }, $titlesByPageId ), static function ( $description ) { return $description !== null; } ); } ); @@ -230,8 +230,8 @@ class DescriptionLookupTest extends TestCase { $idLookup = $this->getMockBuilder( EntityIdLookup::class ) ->getMockForAbstractClass(); $idLookup->method( 'getEntityIds' ) - ->willReturnCallback( function ( $titlesByPageId ) use ( $centralDescriptions ) { - return array_filter( array_map( function ( Title $title ) use ( $centralDescriptions ) { + ->willReturnCallback( static function ( $titlesByPageId ) use ( $centralDescriptions ) { + return array_filter( array_map( static function ( Title $title ) use ( $centralDescriptions ) { if ( !array_key_exists( $title->getArticleID(), $centralDescriptions ) ) { return null; } @@ -258,7 +258,7 @@ class DescriptionLookupTest extends TestCase { $termBuffer = $this->createMock( TermBuffer::class ); $termBuffer->method( 'getPrefetchedTerm' ) ->willReturnCallback( - function ( $entityId, $termType, $langCode ) use ( $centralDescriptions ) { + static function ( $entityId, $termType, $langCode ) use ( $centralDescriptions ) { $pageId = (int)substr( $entityId->getSerialization(), 1 ); $description = $centralDescriptions[$pageId]; if ( is_array( $description ) ) { diff --git a/client/tests/phpunit/unit/includes/Usage/UsageTrackingSnakFormatterTest.php b/client/tests/phpunit/unit/includes/Usage/UsageTrackingSnakFormatterTest.php index b608641..ad44acd 100644 --- a/client/tests/phpunit/unit/includes/Usage/UsageTrackingSnakFormatterTest.php +++ b/client/tests/phpunit/unit/includes/Usage/UsageTrackingSnakFormatterTest.php @@ -94,7 +94,7 @@ class UsageTrackingSnakFormatterTest extends \PHPUnit\Framework\TestCase { $parser = $this->createMock( EntityIdParser::class ); $parser->expects( $this->once() ) ->method( 'parse' ) - ->willReturnCallback( function ( $id ) { + ->willReturnCallback( static function ( $id ) { return $id === '1' ? null : new ItemId( $id ); } ); diff --git a/composer.json b/composer.json index 91be112..33bcde5 100644 --- a/composer.json +++ b/composer.json @@ -42,8 +42,8 @@ "swaggest/json-diff": "^3.11.0" }, "require-dev": { - "mediawiki/mediawiki-codesniffer": "dev-master#fd6ecb5ffbe353507ca05387176db02f0f41f6fe", - "mediawiki/mediawiki-phan-config": "0.14.0", + "mediawiki/mediawiki-codesniffer": "45.0.0", + "mediawiki/mediawiki-phan-config": "0.15.0", "mediawiki/minus-x": "1.1.3", "php-parallel-lint/php-console-highlighter": "1.0.0", "php-parallel-lint/php-parallel-lint": "1.4.0", diff --git a/data-access/src/ByTypeDispatchingEntityIdLookup.php b/data-access/src/ByTypeDispatchingEntityIdLookup.php index b5f867e..d9d523b 100644 --- a/data-access/src/ByTypeDispatchingEntityIdLookup.php +++ b/data-access/src/ByTypeDispatchingEntityIdLookup.php @@ -60,7 +60,7 @@ class ByTypeDispatchingEntityIdLookup implements EntityIdLookup { $results = array_replace( $results, $entityIds ); } - return array_filter( $results, function ( $id ) { + return array_filter( $results, static function ( $id ) { return $id instanceof EntityId; } ); } diff --git a/data-access/tests/phpunit/ByTypeDispatchingEntityIdLookupTest.php b/data-access/tests/phpunit/ByTypeDispatchingEntityIdLookupTest.php index 255d2dd..f5e834a 100644 --- a/data-access/tests/phpunit/ByTypeDispatchingEntityIdLookupTest.php +++ b/data-access/tests/phpunit/ByTypeDispatchingEntityIdLookupTest.php @@ -65,7 +65,7 @@ class ByTypeDispatchingEntityIdLookupTest extends TestCase { $lookup = $this->createMock( EntityIdLookup::class ); $lookup ->method( 'getEntityIds' ) - ->willReturnCallback( function ( $titles ) use ( $map ) { + ->willReturnCallback( static function ( $titles ) use ( $map ) { $results = []; foreach ( $titles as $title ) { $dbKey = $title->getPrefixedDBkey(); @@ -77,7 +77,7 @@ class ByTypeDispatchingEntityIdLookupTest extends TestCase { } ); $lookup ->method( 'getEntityIdForTitle' ) - ->willReturnCallback( function ( $title ) use ( $map ) { + ->willReturnCallback( static function ( $title ) use ( $map ) { return $map[$title->getPrefixedDBkey()] ?? null; } ); return $lookup; diff --git a/data-access/tests/phpunit/ByTypeDispatchingEntityRevisionLookupTest.php b/data-access/tests/phpunit/ByTypeDispatchingEntityRevisionLookupTest.php index 8728d41..a59e484 100644 --- a/data-access/tests/phpunit/ByTypeDispatchingEntityRevisionLookupTest.php +++ b/data-access/tests/phpunit/ByTypeDispatchingEntityRevisionLookupTest.php @@ -129,7 +129,7 @@ class ByTypeDispatchingEntityRevisionLookupTest extends TestCase { $shouldNotBeCalled = function () { $this->fail( 'Should not be called' ); }; - $returnTrue = function () { + $returnTrue = static function () { return true; }; diff --git a/data-access/tests/phpunit/SourceAndTypeDispatchingPrefetchingTermLookupTest.php b/data-access/tests/phpunit/SourceAndTypeDispatchingPrefetchingTermLookupTest.php index 1fe9296..48703cd 100644 --- a/data-access/tests/phpunit/SourceAndTypeDispatchingPrefetchingTermLookupTest.php +++ b/data-access/tests/phpunit/SourceAndTypeDispatchingPrefetchingTermLookupTest.php @@ -46,9 +46,9 @@ class SourceAndTypeDispatchingPrefetchingTermLookupTest extends TestCase { $this->callbacks = [ 'some-source' => [ - 'item' => function () use ( $itemPrefetchingLookup ) { return $itemPrefetchingLookup; + 'item' => static function () use ( $itemPrefetchingLookup ) { return $itemPrefetchingLookup; }, - 'property' => function () use ( $propertyPrefetchingLookup ) { return $propertyPrefetchingLookup; + 'property' => static function () use ( $propertyPrefetchingLookup ) { return $propertyPrefetchingLookup; }, ], ]; @@ -71,9 +71,9 @@ class SourceAndTypeDispatchingPrefetchingTermLookupTest extends TestCase { $this->callbacks = [ 'some-source' => [ - 'item' => function () use ( $itemPrefetchingLookup ) { return $itemPrefetchingLookup; + 'item' => static function () use ( $itemPrefetchingLookup ) { return $itemPrefetchingLookup; }, - 'property' => function () use ( $propertyPrefetchingLookup ) { return $propertyPrefetchingLookup; + 'property' => static function () use ( $propertyPrefetchingLookup ) { return $propertyPrefetchingLookup; }, ], ]; @@ -95,9 +95,9 @@ class SourceAndTypeDispatchingPrefetchingTermLookupTest extends TestCase { $this->callbacks = [ 'some-source' => [ - 'item' => function () use ( $itemPrefetchingLookup ) { return $itemPrefetchingLookup; + 'item' => static function () use ( $itemPrefetchingLookup ) { return $itemPrefetchingLookup; }, - 'property' => function () use ( $propertyPrefetchingLookup ) { return $propertyPrefetchingLookup; + 'property' => static function () use ( $propertyPrefetchingLookup ) { return $propertyPrefetchingLookup; }, ], ]; @@ -118,7 +118,7 @@ class SourceAndTypeDispatchingPrefetchingTermLookupTest extends TestCase { $this->callbacks = [ 'some-source' => [ - 'item' => function () use ( $itemPrefetchingLookup ) { return $itemPrefetchingLookup; + 'item' => static function () use ( $itemPrefetchingLookup ) { return $itemPrefetchingLookup; }, ], ]; @@ -136,7 +136,7 @@ class SourceAndTypeDispatchingPrefetchingTermLookupTest extends TestCase { $this->callbacks = [ 'some-source' => [ - 'item' => function () use ( $innerLookup ) { return $innerLookup; + 'item' => static function () use ( $innerLookup ) { return $innerLookup; }, ], ]; @@ -155,7 +155,7 @@ class SourceAndTypeDispatchingPrefetchingTermLookupTest extends TestCase { $this->callbacks = [ 'some-source' => [ - 'item' => function () use ( $innerLookup ) { return $innerLookup; + 'item' => static function () use ( $innerLookup ) { return $innerLookup; }, ], ]; @@ -173,7 +173,7 @@ class SourceAndTypeDispatchingPrefetchingTermLookupTest extends TestCase { $this->callbacks = [ 'some-source' => [ - 'item' => function () use ( $innerLookup ) { return $innerLookup; + 'item' => static function () use ( $innerLookup ) { return $innerLookup; }, ], ]; diff --git a/lib/WikibaseLib.entitytypes.php b/lib/WikibaseLib.entitytypes.php index 5e44661..8cbe481 100644 --- a/lib/WikibaseLib.entitytypes.php +++ b/lib/WikibaseLib.entitytypes.php @@ -27,44 +27,44 @@ use Wikibase\Lib\EntityTypeDefinitions as Def; return [ 'item' => [ - Def::SERIALIZER_FACTORY_CALLBACK => function( SerializerFactory $serializerFactory ) { + Def::SERIALIZER_FACTORY_CALLBACK => static function( SerializerFactory $serializerFactory ) { return $serializerFactory->newItemSerializer(); }, - Def::DESERIALIZER_FACTORY_CALLBACK => function( DeserializerFactory $deserializerFactory ) { + Def::DESERIALIZER_FACTORY_CALLBACK => static function( DeserializerFactory $deserializerFactory ) { return $deserializerFactory->newItemDeserializer(); }, Def::ENTITY_ID_PATTERN => ItemId::PATTERN, - Def::ENTITY_ID_BUILDER => function( $serialization ) { + Def::ENTITY_ID_BUILDER => static function( $serialization ) { return new ItemId( $serialization ); }, - Def::ENTITY_ID_COMPOSER_CALLBACK => function( $uniquePart ) { + Def::ENTITY_ID_COMPOSER_CALLBACK => static function( $uniquePart ) { return new ItemId( 'Q' . $uniquePart ); }, - Def::ENTITY_DIFFER_STRATEGY_BUILDER => function() { + Def::ENTITY_DIFFER_STRATEGY_BUILDER => static function() { return new ItemDiffer(); }, - Def::ENTITY_PATCHER_STRATEGY_BUILDER => function() { + Def::ENTITY_PATCHER_STRATEGY_BUILDER => static function() { return new ItemPatcher(); }, ], 'property' => [ - Def::SERIALIZER_FACTORY_CALLBACK => function( SerializerFactory $serializerFactory ) { + Def::SERIALIZER_FACTORY_CALLBACK => static function( SerializerFactory $serializerFactory ) { return $serializerFactory->newPropertySerializer(); }, - Def::DESERIALIZER_FACTORY_CALLBACK => function( DeserializerFactory $deserializerFactory ) { + Def::DESERIALIZER_FACTORY_CALLBACK => static function( DeserializerFactory $deserializerFactory ) { return $deserializerFactory->newPropertyDeserializer(); }, Def::ENTITY_ID_PATTERN => NumericPropertyId::PATTERN, - Def::ENTITY_ID_BUILDER => function( $serialization ) { + Def::ENTITY_ID_BUILDER => static function( $serialization ) { return new NumericPropertyId( $serialization ); }, - Def::ENTITY_ID_COMPOSER_CALLBACK => function( $uniquePart ) { + Def::ENTITY_ID_COMPOSER_CALLBACK => static function( $uniquePart ) { return new NumericPropertyId( 'P' . $uniquePart ); }, - Def::ENTITY_DIFFER_STRATEGY_BUILDER => function() { + Def::ENTITY_DIFFER_STRATEGY_BUILDER => static function() { return new PropertyDiffer(); }, - Def::ENTITY_PATCHER_STRATEGY_BUILDER => function() { + Def::ENTITY_PATCHER_STRATEGY_BUILDER => static function() { return new PropertyPatcher(); }, ], diff --git a/lib/includes/DataTypeDefinitions.php b/lib/includes/DataTypeDefinitions.php index d055f0d..650d5e8 100644 --- a/lib/includes/DataTypeDefinitions.php +++ b/lib/includes/DataTypeDefinitions.php @@ -384,7 +384,7 @@ class DataTypeDefinitions { */ public function getRdfDataTypes() { return array_map( - function ( $dataType ) { + static function ( $dataType ) { if ( is_callable( $dataType ) ) { $dataType = ( $dataType )(); } diff --git a/lib/includes/Formatters/AutoCommentFormatter.php b/lib/includes/Formatters/AutoCommentFormatter.php index 143ef88..ab91703 100644 --- a/lib/includes/Formatters/AutoCommentFormatter.php +++ b/lib/includes/Formatters/AutoCommentFormatter.php @@ -98,7 +98,7 @@ class AutoCommentFormatter { return null; } - $args = array_map( function ( $arg ) { + $args = array_map( static function ( $arg ) { // MediaWiki HTML-escaped the auto-comment already, // undo that, then wikitext-escape the args for the message // (no message requires formatted params and some args are user-controlled) diff --git a/lib/includes/LanguageFallbackChainFactory.php b/lib/includes/LanguageFallbackChainFactory.php index a311942..bea5bc8 100644 --- a/lib/includes/LanguageFallbackChainFactory.php +++ b/lib/includes/LanguageFallbackChainFactory.php @@ -287,7 +287,7 @@ class LanguageFallbackChainFactory { $babelCategoryNames = array_filter( $wgBabelCategoryNames, - function( $category ) { + static function( $category ) { return $category !== false; } ); diff --git a/lib/includes/Serialization/CallbackFactory.php b/lib/includes/Serialization/CallbackFactory.php index b649453..618b9a0 100644 --- a/lib/includes/Serialization/CallbackFactory.php +++ b/lib/includes/Serialization/CallbackFactory.php @@ -23,7 +23,7 @@ class CallbackFactory { * @return callable */ public function getCallbackToIndexTags( $tagName ) { - return function( $array ) use ( $tagName ) { + return static function( $array ) use ( $tagName ) { if ( is_array( $array ) ) { ApiResult::setIndexedTagName( $array, $tagName ); } @@ -40,7 +40,7 @@ class CallbackFactory { * @return callable */ public function getCallbackToSetArrayType( $type, $kvpKeyName = null ) { - return function( $array ) use ( $type, $kvpKeyName ) { + return static function( $array ) use ( $type, $kvpKeyName ) { if ( is_array( $array ) ) { ApiResult::setArrayType( $array, $type, $kvpKeyName ); } diff --git a/lib/includes/Store/CacheRetrievingEntityRevisionLookup.php b/lib/includes/Store/CacheRetrievingEntityRevisionLookup.php index fd11508..9672943 100644 --- a/lib/includes/Store/CacheRetrievingEntityRevisionLookup.php +++ b/lib/includes/Store/CacheRetrievingEntityRevisionLookup.php @@ -101,11 +101,11 @@ class CacheRetrievingEntityRevisionLookup implements EntityRevisionLookup { if ( $entityRevision !== null ) { if ( $revisionId === 0 && $this->shouldVerifyRevision ) { $latestRevisionIdResult = $this->lookup->getLatestRevisionId( $entityId, $mode ); - $returnFalse = function () { + $returnFalse = static function () { return false; }; - $latestRevision = $latestRevisionIdResult->onConcreteRevision( function ( $revId ) { + $latestRevision = $latestRevisionIdResult->onConcreteRevision( static function ( $revId ) { return $revId; } ) ->onRedirect( $returnFalse ) diff --git a/lib/includes/Store/RedirectResolvingLatestRevisionLookup.php b/lib/includes/Store/RedirectResolvingLatestRevisionLookup.php index 65d5010..09b7f6b 100644 --- a/lib/includes/Store/RedirectResolvingLatestRevisionLookup.php +++ b/lib/includes/Store/RedirectResolvingLatestRevisionLookup.php @@ -34,12 +34,12 @@ class RedirectResolvingLatestRevisionLookup { } $revisionIdResult = $this->revisionLookup->getLatestRevisionId( $entityId ); - $returnNull = function () { + $returnNull = static function () { return null; }; $resolutionResult = $revisionIdResult - ->onConcreteRevision( function ( $revisionId ) use ( $entityId ) { + ->onConcreteRevision( static function ( $revisionId ) use ( $entityId ) { return [ $revisionId, $entityId ]; } ) ->onNonexistentEntity( $returnNull ) @@ -47,7 +47,7 @@ class RedirectResolvingLatestRevisionLookup { return $this->revisionLookup->getLatestRevisionId( $redirectsTo ) ->onNonexistentEntity( $returnNull ) ->onRedirect( $returnNull ) - ->onConcreteRevision( function ( $revisionId ) use ( $redirectsTo ) { + ->onConcreteRevision( static function ( $revisionId ) use ( $redirectsTo ) { return [ $revisionId, $redirectsTo ]; } ) ->map(); diff --git a/lib/includes/Store/RevisionBasedEntityLookup.php b/lib/includes/Store/RevisionBasedEntityLookup.php index d01df62..5c5cb6f 100644 --- a/lib/includes/Store/RevisionBasedEntityLookup.php +++ b/lib/includes/Store/RevisionBasedEntityLookup.php @@ -63,10 +63,10 @@ class RevisionBasedEntityLookup implements EntityLookup { * @return bool */ public function hasEntity( EntityId $entityId ) { - $returnFalse = function () { + $returnFalse = static function () { return false; }; - $returnTrue = function () { + $returnTrue = static function () { return true; }; @@ -77,7 +77,7 @@ class RevisionBasedEntityLookup implements EntityLookup { ->onConcreteRevision( $returnTrue ) ->onNonexistentEntity( $returnFalse ) // @phan-suppress-next-line PhanPluginNeverReturnFunction - ->onRedirect( function ( $revisionId, EntityId $redirectsTo ) use ( $entityId ) { + ->onRedirect( static function ( $revisionId, EntityId $redirectsTo ) use ( $entityId ) { throw new UnresolvedEntityRedirectException( $entityId, $redirectsTo ); } ) diff --git a/lib/includes/Store/RevisionBasedEntityRedirectTargetLookup.php b/lib/includes/Store/RevisionBasedEntityRedirectTargetLookup.php index f570840..0b838c9 100644 --- a/lib/includes/Store/RevisionBasedEntityRedirectTargetLookup.php +++ b/lib/includes/Store/RevisionBasedEntityRedirectTargetLookup.php @@ -20,7 +20,7 @@ class RevisionBasedEntityRedirectTargetLookup implements EntityRedirectTargetLoo * @inheritDoc */ public function getRedirectForEntityId( EntityId $entityId, $forUpdate = '' ): ?EntityId { - $returnNull = function () { + $returnNull = static function () { return null; }; @@ -31,7 +31,7 @@ class RevisionBasedEntityRedirectTargetLookup implements EntityRedirectTargetLoo return $this->entityRevisionLookup->getLatestRevisionId( $entityId, $lookupMode ) ->onNonexistentEntity( $returnNull ) ->onConcreteRevision( $returnNull ) - ->onRedirect( function ( $revision, EntityId $redirectTarget ) { + ->onRedirect( static function ( $revision, EntityId $redirectTarget ) { return $redirectTarget; } ) ->map(); diff --git a/lib/includes/Store/Sql/SiteLinkTable.php b/lib/includes/Store/Sql/SiteLinkTable.php index 4590a7e..0e3b55b 100644 --- a/lib/includes/Store/Sql/SiteLinkTable.php +++ b/lib/includes/Store/Sql/SiteLinkTable.php @@ -73,7 +73,7 @@ class SiteLinkTable implements SiteLinkStore { return array_udiff( $siteLinks1, $siteLinks2, - function( SiteLink $a, SiteLink $b ) { + static function( SiteLink $a, SiteLink $b ) { $result = strcmp( $a->getSiteId(), $b->getSiteId() ); if ( $result === 0 ) { diff --git a/lib/includes/Store/Sql/Terms/DatabaseTermInLangIdsAcquirer.php b/lib/includes/Store/Sql/Terms/DatabaseTermInLangIdsAcquirer.php index ec7525d..210d907 100644 --- a/lib/includes/Store/Sql/Terms/DatabaseTermInLangIdsAcquirer.php +++ b/lib/includes/Store/Sql/Terms/DatabaseTermInLangIdsAcquirer.php @@ -118,13 +118,13 @@ class DatabaseTermInLangIdsAcquirer implements TermInLangIdsAcquirer { ) { $texts = []; - array_walk_recursive( $termsArray, function ( $text ) use ( &$texts ) { + array_walk_recursive( $termsArray, static function ( $text ) use ( &$texts ) { $texts[] = $text; } ); $textIds = $this->acquireTextIds( $texts, $textIdsAcquirer ); - array_walk_recursive( $termsArray, function ( &$text ) use ( $textIds ) { + array_walk_recursive( $termsArray, static function ( &$text ) use ( $textIds ) { $text = $textIds[$text]; } ); @@ -354,7 +354,7 @@ class DatabaseTermInLangIdsAcquirer implements TermInLangIdsAcquirer { } return array_map( - function ( $record, $idToRestore ) { + static function ( $record, $idToRestore ) { $record['wbtl_id'] = $idToRestore; return $record; }, diff --git a/lib/includes/Store/Sql/Terms/Util/ReplicaPrimaryAwareRecordIdsAcquirer.php b/lib/includes/Store/Sql/Terms/Util/ReplicaPrimaryAwareRecordIdsAcquirer.php index c7f833b..6bdab7c 100644 --- a/lib/includes/Store/Sql/Terms/Util/ReplicaPrimaryAwareRecordIdsAcquirer.php +++ b/lib/includes/Store/Sql/Terms/Util/ReplicaPrimaryAwareRecordIdsAcquirer.php @@ -244,7 +244,7 @@ class ReplicaPrimaryAwareRecordIdsAcquirer { * @return array */ private function findExistingRecords( IReadableDatabase $db, array $neededRecords ): array { - $recordsSelectConditions = array_map( function ( $record ) use ( $db ) { + $recordsSelectConditions = array_map( static function ( $record ) use ( $db ) { return $db->andExpr( $record ); }, $neededRecords ); diff --git a/lib/includes/Store/Sql/WikiPageEntityMetaDataLookup.php b/lib/includes/Store/Sql/WikiPageEntityMetaDataLookup.php index 6c31589..998deee 100644 --- a/lib/includes/Store/Sql/WikiPageEntityMetaDataLookup.php +++ b/lib/includes/Store/Sql/WikiPageEntityMetaDataLookup.php @@ -284,7 +284,7 @@ class WikiPageEntityMetaDataLookup implements WikiPageEntityMetaDataAccessor { ); return array_map( - function ( $revisionInformation ) { + static function ( $revisionInformation ) { if ( !is_object( $revisionInformation ) ) { return $revisionInformation; } diff --git a/lib/packages/wikibase/changes/src/EntityChange.php b/lib/packages/wikibase/changes/src/EntityChange.php index 7fa8407..0acb5bf 100644 --- a/lib/packages/wikibase/changes/src/EntityChange.php +++ b/lib/packages/wikibase/changes/src/EntityChange.php @@ -178,7 +178,7 @@ class EntityChange extends DiffChange { if ( defined( 'MW_PHPUNIT_TEST' ) ) { array_walk_recursive( $info, - function ( $v ) { + static function ( $v ) { if ( is_object( $v ) ) { throw new UnexpectedValueException( "Refusing to serialize PHP object of type " . get_class( $v ) ); diff --git a/lib/packages/wikibase/changes/tests/EntityChangeTest.php b/lib/packages/wikibase/changes/tests/EntityChangeTest.php index 986f36c..b969e50 100644 --- a/lib/packages/wikibase/changes/tests/EntityChangeTest.php +++ b/lib/packages/wikibase/changes/tests/EntityChangeTest.php @@ -42,13 +42,13 @@ class EntityChangeTest extends ChangeRowTest { $changes = array_filter( TestChanges::getChanges(), - function( EntityChange $change ) use ( $rowClass ) { + static function( EntityChange $change ) use ( $rowClass ) { return is_a( $change, $rowClass ); } ); $cases = array_map( - function( EntityChange $change ) { + static function( EntityChange $change ) { return [ $change ]; }, $changes ); diff --git a/lib/packages/wikibase/changes/tests/ItemChangeTest.php b/lib/packages/wikibase/changes/tests/ItemChangeTest.php index 02371f1..51b091c 100644 --- a/lib/packages/wikibase/changes/tests/ItemChangeTest.php +++ b/lib/packages/wikibase/changes/tests/ItemChangeTest.php @@ -33,12 +33,12 @@ class ItemChangeTest extends EntityChangeTest { public static function itemChangeProvider() { $changes = array_filter( TestChanges::getChanges(), - function( EntityChange $change ) { + static function( EntityChange $change ) { return ( $change instanceof ItemChange ); } ); - $cases = array_map( function( ItemChange $change ) { + $cases = array_map( static function( ItemChange $change ) { return [ $change ]; }, $changes ); diff --git a/lib/packages/wikibase/data-model-serialization/tests/unit/Deserializers/SnakValueDeserializerTest.php b/lib/packages/wikibase/data-model-serialization/tests/unit/Deserializers/SnakValueDeserializerTest.php index 3e8a170..c0bc9c3 100644 --- a/lib/packages/wikibase/data-model-serialization/tests/unit/Deserializers/SnakValueDeserializerTest.php +++ b/lib/packages/wikibase/data-model-serialization/tests/unit/Deserializers/SnakValueDeserializerTest.php @@ -56,7 +56,7 @@ class SnakValueDeserializerTest extends TestCase { public function testGivenBuilderThrows_rethrowsAsDeserializationException(): void { $deserializer = $this->newDeserializer( [ - 'PT:throwy-type' => function () { + 'PT:throwy-type' => static function () { throw new InvalidArgumentException( 'builder unhappy' ); }, ] ); diff --git a/lib/packages/wikibase/data-model/tests/unit/NewItem.php b/lib/packages/wikibase/data-model/tests/unit/NewItem.php index 3559da3..64a1a5c 100644 --- a/lib/packages/wikibase/data-model/tests/unit/NewItem.php +++ b/lib/packages/wikibase/data-model/tests/unit/NewItem.php @@ -187,7 +187,7 @@ class NewItem { public function andSiteLink( $siteId, $pageName, $badges = null ) { $copy = clone $this; if ( $badges !== null ) { - $badges = array_map( function ( $badge ) { + $badges = array_map( static function ( $badge ) { return $badge instanceof ItemId ? $badge : new ItemId( $badge ); }, (array)$badges ); } diff --git a/lib/resources/Resources.php b/lib/resources/Resources.php index 3e72738..81ef4d8 100644 --- a/lib/resources/Resources.php +++ b/lib/resources/Resources.php @@ -17,7 +17,7 @@ use Wikibase\Repo\WikibaseRepo; * * @codeCoverageIgnoreStart */ -return call_user_func( function() { +return call_user_func( static function() { $moduleTemplate = [ 'localBasePath' => __DIR__, 'remoteExtPath' => 'Wikibase/lib/resources', @@ -26,7 +26,7 @@ return call_user_func( function() { $modules = [ 'mw.config.values.wbCurrentSiteDetails' => $moduleTemplate + [ - 'factory' => function () { + 'factory' => static function () { return new CurrentSiteModule( WikibaseSettings::isClientEnabled() ? WikibaseClient::getSettings() : null, WikibaseSettings::isRepoEnabled() ? WikibaseRepo::getSettings() : null, @@ -41,7 +41,7 @@ return call_user_func( function() { ], 'mw.config.values.wbSiteDetails' => $moduleTemplate + [ - 'factory' => function () { + 'factory' => static function () { return new SitesModule( WikibaseSettings::isClientEnabled() ? WikibaseClient::getSettings() : null, WikibaseSettings::isRepoEnabled() ? WikibaseRepo::getSettings() : null, diff --git a/lib/tests/phpunit/DataTypeDefinitionsTest.php b/lib/tests/phpunit/DataTypeDefinitionsTest.php index 58cb5b9..5be8cf8 100644 --- a/lib/tests/phpunit/DataTypeDefinitionsTest.php +++ b/lib/tests/phpunit/DataTypeDefinitionsTest.php @@ -42,7 +42,7 @@ class DataTypeDefinitionsTest extends \PHPUnit\Framework\TestCase { 'PT:bar' => [ 'value-type' => 'BAR', 'formatter-factory-callback' => 'DataTypeDefinitionsTest::getBarFormatter', - 'rdf-data-type' => function () { + 'rdf-data-type' => static function () { return 'acme-test-2'; }, ], diff --git a/lib/tests/phpunit/DataValueFactoryTest.php b/lib/tests/phpunit/DataValueFactoryTest.php index c1cfe67..73256c0 100644 --- a/lib/tests/phpunit/DataValueFactoryTest.php +++ b/lib/tests/phpunit/DataValueFactoryTest.php @@ -21,7 +21,7 @@ class DataValueFactoryTest extends \PHPUnit\Framework\TestCase { public function newInstance() { $deserializer = $this->createMock( Deserializer::class ); $deserializer->method( 'deserialize' ) - ->willReturnCallback( function( array $data ) { + ->willReturnCallback( static function( array $data ) { if ( $data['type'] === 'string' ) { return 'success'; } diff --git a/lib/tests/phpunit/EntityFactoryTest.php b/lib/tests/phpunit/EntityFactoryTest.php index a561030..711b7ff 100644 --- a/lib/tests/phpunit/EntityFactoryTest.php +++ b/lib/tests/phpunit/EntityFactoryTest.php @@ -21,10 +21,10 @@ class EntityFactoryTest extends \PHPUnit\Framework\TestCase { private function getEntityFactory() { $instantiators = [ - 'item' => function() { + 'item' => static function() { return new Item(); }, - 'property' => function() { + 'property' => static function() { return Property::newFromType( 'string' ); }, ]; diff --git a/lib/tests/phpunit/EntityRevisionLookupTestCase.php b/lib/tests/phpunit/EntityRevisionLookupTestCase.php index 733f229..0b5c824 100644 --- a/lib/tests/phpunit/EntityRevisionLookupTestCase.php +++ b/lib/tests/phpunit/EntityRevisionLookupTestCase.php @@ -185,7 +185,7 @@ abstract class EntityRevisionLookupTestCase extends MediaWikiIntegrationTestCase $result = $lookup->getLatestRevisionId( $id ); $gotRevisionId = $result->onRedirect( $shouldNotBeCalled ) ->onNonexistentEntity( $shouldNotBeCalled ) - ->onConcreteRevision( function ( $revId ) { + ->onConcreteRevision( static function ( $revId ) { return $revId; } ) ->map(); @@ -209,7 +209,7 @@ abstract class EntityRevisionLookupTestCase extends MediaWikiIntegrationTestCase $result = $lookup->getLatestRevisionId( $itemId ); $gotRevision = $result->onRedirect( $shouldNotBeCalled ) ->onNonexistentEntity( - function () { + static function () { return 'non-existent'; } ) diff --git a/lib/tests/phpunit/EntityTypesTest.php b/lib/tests/phpunit/EntityTypesTest.php index ac495ed..a6f04d5 100644 --- a/lib/tests/phpunit/EntityTypesTest.php +++ b/lib/tests/phpunit/EntityTypesTest.php @@ -61,7 +61,7 @@ class EntityTypesTest extends \PHPUnit\Framework\TestCase { public static function provideEntityTypes() { return array_map( - function( $entityType ) { + static function( $entityType ) { return [ $entityType ]; }, array_keys( self::getRegistry() ) diff --git a/lib/tests/phpunit/Formatters/BinaryOptionDispatchingSnakFormatterTest.php b/lib/tests/phpunit/Formatters/BinaryOptionDispatchingSnakFormatterTest.php index a008448..da0699a 100644 --- a/lib/tests/phpunit/Formatters/BinaryOptionDispatchingSnakFormatterTest.php +++ b/lib/tests/phpunit/Formatters/BinaryOptionDispatchingSnakFormatterTest.php @@ -110,7 +110,7 @@ class BinaryOptionDispatchingSnakFormatterTest extends \PHPUnit\Framework\TestCa private function getPropertyDataTypeLookup() { $propertyDataTypeLookup = $this->createMock( PropertyDataTypeLookup::class ); $propertyDataTypeLookup->method( 'getDataTypeIdForProperty' ) - ->willReturnCallback( function( NumericPropertyId $propertyId ) { + ->willReturnCallback( static function( NumericPropertyId $propertyId ) { switch ( $propertyId->getSerialization() ) { case 'P1': return 'special'; diff --git a/lib/tests/phpunit/Formatters/DispatchingValueFormatterTest.php b/lib/tests/phpunit/Formatters/DispatchingValueFormatterTest.php index b9c9066..1414d85 100644 --- a/lib/tests/phpunit/Formatters/DispatchingValueFormatterTest.php +++ b/lib/tests/phpunit/Formatters/DispatchingValueFormatterTest.php @@ -61,7 +61,7 @@ class DispatchingValueFormatterTest extends \PHPUnit\Framework\TestCase { } public static function formatProvider() { - $formattersFactory = function ( self $self ) { + $formattersFactory = static function ( self $self ) { $stringFormatter = $self->createMock( ValueFormatter::class ); $stringFormatter->method( 'format' ) ->willReturn( 'VT:string' ); @@ -120,7 +120,7 @@ class DispatchingValueFormatterTest extends \PHPUnit\Framework\TestCase { } public static function formatValueProvider() { - $formattersFactory = function ( self $self ) { + $formattersFactory = static function ( self $self ) { $stringFormatter = $self->createMock( ValueFormatter::class ); $stringFormatter->method( 'format' ) ->willReturn( 'VT:string' ); diff --git a/lib/tests/phpunit/Formatters/FormatterLabelDescriptionLookupFactoryTest.php b/lib/tests/phpunit/Formatters/FormatterLabelDescriptionLookupFactoryTest.php index 44a0dcf..f978656 100644 --- a/lib/tests/phpunit/Formatters/FormatterLabelDescriptionLookupFactoryTest.php +++ b/lib/tests/phpunit/Formatters/FormatterLabelDescriptionLookupFactoryTest.php @@ -56,11 +56,11 @@ class FormatterLabelDescriptionLookupFactoryTest extends \PHPUnit\Framework\Test } public static function provideGetLabelDescriptionLookup() { - $termLookupFactory = function ( self $self ) { + $termLookupFactory = static function ( self $self ) { $termLookup = $self->createMock( TermLookup::class ); $termLookup->method( 'getLabel' ) - ->willReturnCallback( function ( $item, $language ) { + ->willReturnCallback( static function ( $item, $language ) { if ( $language === 'de' ) { return 'Kätzchen'; } @@ -74,7 +74,7 @@ class FormatterLabelDescriptionLookupFactoryTest extends \PHPUnit\Framework\Test return $termLookup; }; - $getDeChChain = function ( self $self ) { + $getDeChChain = static function ( self $self ) { $stubContentLanguages = $self->createStub( ContentLanguages::class ); $stubContentLanguages->method( 'hasLanguage' ) ->willReturn( true ); diff --git a/lib/tests/phpunit/Formatters/GlobeCoordinateDetailsFormatterTest.php b/lib/tests/phpunit/Formatters/GlobeCoordinateDetailsFormatterTest.php index ef915a8..aaaf4d3 100644 --- a/lib/tests/phpunit/Formatters/GlobeCoordinateDetailsFormatterTest.php +++ b/lib/tests/phpunit/Formatters/GlobeCoordinateDetailsFormatterTest.php @@ -26,7 +26,7 @@ class GlobeCoordinateDetailsFormatterTest extends \PHPUnit\Framework\TestCase { private function newFormatter( ?FormatterOptions $options = null ) { $vocabularyUriFormatter = $this->createMock( ValueFormatter::class ); $vocabularyUriFormatter->method( 'format' ) - ->willReturnCallback( function( $value ) { + ->willReturnCallback( static function( $value ) { return preg_match( '@^http://www\.wikidata\.org/entity/(.*)@', $value, $matches ) ? "formatted-globe-{$matches[1]}" : $value; diff --git a/lib/tests/phpunit/Formatters/HtmlExternalIdentifierFormatterTest.php b/lib/tests/phpunit/Formatters/HtmlExternalIdentifierFormatterTest.php index 82b2988..39c9764 100644 --- a/lib/tests/phpunit/Formatters/HtmlExternalIdentifierFormatterTest.php +++ b/lib/tests/phpunit/Formatters/HtmlExternalIdentifierFormatterTest.php @@ -24,11 +24,11 @@ use Wikimedia\Assert\ParameterTypeException; class HtmlExternalIdentifierFormatterTest extends \PHPUnit\Framework\TestCase { public static function provideFormatSnak() { - $formatterUrlExpanderFactory = function ( self $self ) { + $formatterUrlExpanderFactory = static function ( self $self ) { $formatterUrlExpander = $self->createMock( SnakUrlExpander::class ); $formatterUrlExpander->method( 'expandUrl' ) - ->willReturnCallback( function( PropertyValueSnak $snak ) { + ->willReturnCallback( static function( PropertyValueSnak $snak ) { if ( $snak->getPropertyId()->getSerialization() === 'P1' ) { $value = $snak->getDataValue()->getValue(); return 'http://acme.test/stuff/' . wfUrlencode( $value ); diff --git a/lib/tests/phpunit/Formatters/ItemPropertyIdHtmlLinkFormatterTest.php b/lib/tests/phpunit/Formatters/ItemPropertyIdHtmlLinkFormatterTest.php index 8039b16..e2b7967 100644 --- a/lib/tests/phpunit/Formatters/ItemPropertyIdHtmlLinkFormatterTest.php +++ b/lib/tests/phpunit/Formatters/ItemPropertyIdHtmlLinkFormatterTest.php @@ -72,7 +72,7 @@ class ItemPropertyIdHtmlLinkFormatterTest extends MediaWikiIntegrationTestCase { $this->languageNameLookup->method( 'getName' ) ->willReturnCallback( - function ( $languageCode ) use ( &$currentUserLanguage ) { + static function ( $languageCode ) use ( &$currentUserLanguage ) { $languageNamesIn = [ 'en' => [ 'en' => 'English', @@ -475,7 +475,7 @@ class ItemPropertyIdHtmlLinkFormatterTest extends MediaWikiIntegrationTestCase { $this->labelDescriptionLookup->method( 'getLabel' ) ->with( $id ) ->willReturnCallback( - function () use ( + static function () use ( $labelLanguage, $labelText, $testCase @@ -547,16 +547,16 @@ class ItemPropertyIdHtmlLinkFormatterTest extends MediaWikiIntegrationTestCase { $isLocal = true; $isRedirect = false; $prefixedTitleText = $itemId; - $title->method( 'isLocal' )->willReturnCallback( function () use ( &$isLocal ) { + $title->method( 'isLocal' )->willReturnCallback( static function () use ( &$isLocal ) { return $isLocal; } ); - $title->method( 'isRedirect' )->willReturnCallback( function () use ( &$isRedirect ) { + $title->method( 'isRedirect' )->willReturnCallback( static function () use ( &$isRedirect ) { return $isRedirect; } ); $title->method( 'isKnown' )->willReturn( true ); $title->method( 'isRedirect' )->willReturn( false ); $title->method( 'getLocalURL' )->willReturn( $this->itemPageUrl( $itemId ) ); - $title->method( 'getPrefixedText' )->willReturnCallback( function () use ( &$prefixedTitleText ) { + $title->method( 'getPrefixedText' )->willReturnCallback( static function () use ( &$prefixedTitleText ) { return $prefixedTitleText; } ); @@ -623,13 +623,13 @@ class ItemPropertyIdHtmlLinkFormatterTest extends MediaWikiIntegrationTestCase { $title = $this->createMock( Title::class ); $isLocal = true; $prefixedTitleText = $propertyId; - $title->method( 'isLocal' )->willReturnCallback( function () use ( &$isLocal ) { + $title->method( 'isLocal' )->willReturnCallback( static function () use ( &$isLocal ) { return $isLocal; } ); $title->method( 'isKnown' )->willReturn( true ); $title->method( 'isRedirect' )->willReturn( false ); $title->method( 'getLocalURL' )->willReturn( $this->propertyPageUrl( $propertyId ) ); - $title->method( 'getPrefixedText' )->willReturnCallback( function () use ( &$prefixedTitleText ) { + $title->method( 'getPrefixedText' )->willReturnCallback( static function () use ( &$prefixedTitleText ) { return $prefixedTitleText; } ); diff --git a/lib/tests/phpunit/Formatters/LabelsProviderEntityIdHtmlLinkFormatterTest.php b/lib/tests/phpunit/Formatters/LabelsProviderEntityIdHtmlLinkFormatterTest.php index e710b55..314f680 100644 --- a/lib/tests/phpunit/Formatters/LabelsProviderEntityIdHtmlLinkFormatterTest.php +++ b/lib/tests/phpunit/Formatters/LabelsProviderEntityIdHtmlLinkFormatterTest.php @@ -222,7 +222,7 @@ class LabelsProviderEntityIdHtmlLinkFormatterTest extends MediaWikiIntegrationTe $languageNameLookup = $this->createMock( LanguageNameLookup::class ); $languageNameLookup->method( 'getNameForTerms' ) ->willReturnCallback( - function ( $languageCode ) { + static function ( $languageCode ) { $names = [ 'de' => 'Deutsch', 'de-at' => 'Österreichisches Deutsch', diff --git a/lib/tests/phpunit/Formatters/OutputFormatSnakFormatterFactoryTest.php b/lib/tests/phpunit/Formatters/OutputFormatSnakFormatterFactoryTest.php index d6d3e69..538f9ad 100644 --- a/lib/tests/phpunit/Formatters/OutputFormatSnakFormatterFactoryTest.php +++ b/lib/tests/phpunit/Formatters/OutputFormatSnakFormatterFactoryTest.php @@ -62,7 +62,7 @@ class OutputFormatSnakFormatterFactoryTest extends \PHPUnit\Framework\TestCase { $messageInLanguageProvider = $this->createMock( MessageInLanguageProvider::class ); $messageInLanguageProvider->method( 'msgInLang' ) - ->willReturnCallback( function ( $key, $lang, ...$params ) use ( $languageFactory ) { + ->willReturnCallback( static function ( $key, $lang, ...$params ) use ( $languageFactory ) { // ignore $lang, always use qqx return new Message( $key, $params, $languageFactory->getLanguage( 'qqx' ) ); } ); @@ -86,7 +86,7 @@ class OutputFormatSnakFormatterFactoryTest extends \PHPUnit\Framework\TestCase { $mock->method( 'format' ) ->willReturnCallback( - function( DataValue $value ) use ( $format ) { + static function( DataValue $value ) use ( $format ) { return strval( $value->getValue() ) . ' (' . $format . ')'; } ); @@ -104,7 +104,7 @@ class OutputFormatSnakFormatterFactoryTest extends \PHPUnit\Framework\TestCase { $mock->method( 'formatSnak' ) ->willReturnCallback( - function( Snak $snak ) use ( $format ) { + static function( Snak $snak ) use ( $format ) { $s = $snak->getType() . '/' . $snak->getPropertyId(); if ( $snak instanceof PropertyValueSnak ) { diff --git a/lib/tests/phpunit/Formatters/OutputFormatValueFormatterFactoryTest.php b/lib/tests/phpunit/Formatters/OutputFormatValueFormatterFactoryTest.php index 07e65dd..aa3e8d6 100644 --- a/lib/tests/phpunit/Formatters/OutputFormatValueFormatterFactoryTest.php +++ b/lib/tests/phpunit/Formatters/OutputFormatValueFormatterFactoryTest.php @@ -61,10 +61,10 @@ class OutputFormatValueFormatterFactoryTest extends \PHPUnit\Framework\TestCase private function newOutputFormatValueFormatterFactory() { $factoryCallbacks = [ - 'VT:string' => function( $format, FormatterOptions $options ) { + 'VT:string' => static function( $format, FormatterOptions $options ) { return new StringFormatter(); }, - 'PT:url' => function( $format, FormatterOptions $options ) { + 'PT:url' => static function( $format, FormatterOptions $options ) { return new StringFormatter(); }, ]; @@ -168,7 +168,7 @@ class OutputFormatValueFormatterFactoryTest extends \PHPUnit\Framework\TestCase $factory = $this->newOutputFormatValueFormatterFactory(); $factory->setFormatterFactoryCallback( 'VT:wikibase-entityid', - function () { + static function () { return new EntityIdValueFormatter( new PlainEntityIdFormatter() ); } ); diff --git a/lib/tests/phpunit/Formatters/PropertyValueSnakFormatterTest.php b/lib/tests/phpunit/Formatters/PropertyValueSnakFormatterTest.php index 0c88511..a5cdf4e 100644 --- a/lib/tests/phpunit/Formatters/PropertyValueSnakFormatterTest.php +++ b/lib/tests/phpunit/Formatters/PropertyValueSnakFormatterTest.php @@ -142,7 +142,7 @@ class PropertyValueSnakFormatterTest extends \PHPUnit\Framework\TestCase { } public static function formatSnakProvider() { - $dispatchingFormatterFactory = function ( self $self ) { + $dispatchingFormatterFactory = static function ( self $self ) { $formatters = [ 'VT:bad' => new UnDeserializableValueFormatter( new FormatterOptions() ), 'VT:string' => $self->getMockFormatter( 'VT:string' ), diff --git a/lib/tests/phpunit/Formatters/QuantityDetailsFormatterTest.php b/lib/tests/phpunit/Formatters/QuantityDetailsFormatterTest.php index 403ee36..2aef61b 100644 --- a/lib/tests/phpunit/Formatters/QuantityDetailsFormatterTest.php +++ b/lib/tests/phpunit/Formatters/QuantityDetailsFormatterTest.php @@ -28,7 +28,7 @@ class QuantityDetailsFormatterTest extends \PHPUnit\Framework\TestCase { private function newFormatter( ?NumberLocalizer $numberLocalizer = null ) { $vocabularyUriFormatter = $this->createMock( ValueFormatter::class ); $vocabularyUriFormatter->method( 'format' ) - ->willReturnCallback( function( $value ) { + ->willReturnCallback( static function( $value ) { return preg_match( '@^http://www\.wikidata\.org/entity/(.*)@', $value, $matches ) ? $matches[1] : $value; diff --git a/lib/tests/phpunit/Formatters/Reference/DataBridgeReferenceFormatterTest.php b/lib/tests/phpunit/Formatters/Reference/DataBridgeReferenceFormatterTest.php index b7d6866..741c347 100644 --- a/lib/tests/phpunit/Formatters/Reference/DataBridgeReferenceFormatterTest.php +++ b/lib/tests/phpunit/Formatters/Reference/DataBridgeReferenceFormatterTest.php @@ -67,7 +67,7 @@ class DataBridgeReferenceFormatterTest extends TestCase { private function stringSnakFormatter(): SnakFormatter { $snakFormatter = $this->createMock( SnakFormatter::class ); $snakFormatter->method( 'formatSnak' ) - ->willReturnCallback( function ( PropertyValueSnak $snak ) { + ->willReturnCallback( static function ( PropertyValueSnak $snak ) { return (string)$snak->getDataValue()->getValue(); } ); return $snakFormatter; diff --git a/lib/tests/phpunit/Formatters/VocabularyUriFormatterTest.php b/lib/tests/phpunit/Formatters/VocabularyUriFormatterTest.php index 6ca1876..7b15362 100644 --- a/lib/tests/phpunit/Formatters/VocabularyUriFormatterTest.php +++ b/lib/tests/phpunit/Formatters/VocabularyUriFormatterTest.php @@ -40,7 +40,7 @@ class VocabularyUriFormatterTest extends \PHPUnit\Framework\TestCase { public function testFormat( $unit, $expected ) { $labelLookup = $this->createMock( LabelDescriptionLookup::class ); $labelLookup->method( 'getLabel' ) - ->willReturnCallback( function( EntityId $id ) { + ->willReturnCallback( static function( EntityId $id ) { if ( $id->getSerialization() === 'Q112233' ) { throw new LabelDescriptionLookupException( $id, 'No such label!' ); } diff --git a/lib/tests/phpunit/Formatters/WikibaseValueFormatterBuildersTest.php b/lib/tests/phpunit/Formatters/WikibaseValueFormatterBuildersTest.php index 0289ff8..42a41ff 100644 --- a/lib/tests/phpunit/Formatters/WikibaseValueFormatterBuildersTest.php +++ b/lib/tests/phpunit/Formatters/WikibaseValueFormatterBuildersTest.php @@ -78,7 +78,7 @@ class WikibaseValueFormatterBuildersTest extends MediaWikiIntegrationTestCase { $termLookup = $this->createMock( TermLookup::class ); $termLookup->method( 'getLabel' ) - ->willReturnCallback( function ( EntityId $id, $language ) { + ->willReturnCallback( static function ( EntityId $id, $language ) { switch ( $language ) { case 'de': return 'Name für ' . $id->getSerialization(); @@ -88,7 +88,7 @@ class WikibaseValueFormatterBuildersTest extends MediaWikiIntegrationTestCase { } ); $termLookup->method( 'getLabels' ) - ->willReturnCallback( function( EntityId $id ) { + ->willReturnCallback( static function( EntityId $id ) { return [ 'de' => 'Name für ' . $id->getSerialization(), 'en' => 'Label for ' . $id->getSerialization(), @@ -104,13 +104,13 @@ class WikibaseValueFormatterBuildersTest extends MediaWikiIntegrationTestCase { $urlLookup = $this->createMock( EntityUrlLookup::class ); $urlLookup->method( 'getLinkUrl' ) - ->willReturnCallback( function ( EntityId $id ) { + ->willReturnCallback( static function ( EntityId $id ) { return '/wiki/' . $id->getSerialization(); } ); $redirectResolvingLatestRevisionLookup = $this->createStub( RedirectResolvingLatestRevisionLookup::class ); $redirectResolvingLatestRevisionLookup->method( 'lookupLatestRevisionResolvingRedirect' ) - ->willReturnCallback( function ( EntityId $id ) { + ->willReturnCallback( static function ( EntityId $id ) { return [ 123, // some non-null revision id $id, @@ -180,7 +180,7 @@ class WikibaseValueFormatterBuildersTest extends MediaWikiIntegrationTestCase { $titleLookup->method( 'getTitleForId' ) ->willReturnCallback( - function ( EntityId $id ) { + static function ( EntityId $id ) { return Title::makeTitle( NS_MAIN, $id->getSerialization() ); } ); diff --git a/lib/tests/phpunit/Formatters/WikitextExternalIdentifierFormatterTest.php b/lib/tests/phpunit/Formatters/WikitextExternalIdentifierFormatterTest.php index 6f4df25..fa39893 100644 --- a/lib/tests/phpunit/Formatters/WikitextExternalIdentifierFormatterTest.php +++ b/lib/tests/phpunit/Formatters/WikitextExternalIdentifierFormatterTest.php @@ -24,10 +24,10 @@ use Wikimedia\Assert\ParameterTypeException; class WikitextExternalIdentifierFormatterTest extends \PHPUnit\Framework\TestCase { public static function provideFormatSnak() { - $formatterUrlExpanderFactory = function ( self $self ) { + $formatterUrlExpanderFactory = static function ( self $self ) { $expander = $self->createMock( SnakUrlExpander::class ); $expander->method( 'expandUrl' ) - ->willReturnCallback( function ( PropertyValueSnak $snak ) { + ->willReturnCallback( static function ( PropertyValueSnak $snak ) { $value = $snak->getDataValue()->getValue(); switch ( $snak->getPropertyId()->getSerialization() ) { diff --git a/lib/tests/phpunit/Interactors/MatchingTermsLookupSearchInteractorTest.php b/lib/tests/phpunit/Interactors/MatchingTermsLookupSearchInteractorTest.php index 6ed971f..1e936ec 100644 --- a/lib/tests/phpunit/Interactors/MatchingTermsLookupSearchInteractorTest.php +++ b/lib/tests/phpunit/Interactors/MatchingTermsLookupSearchInteractorTest.php @@ -84,7 +84,7 @@ class MatchingTermsLookupSearchInteractorTest extends \PHPUnit\Framework\TestCas private function getMockPrefetchingTermLookup() { $mock = $this->createMock( PrefetchingTermLookup::class ); $mock->method( 'getLabels' ) - ->willReturnCallback( function( EntityId $entityId, $languageCodes ) { + ->willReturnCallback( static function( EntityId $entityId, $languageCodes ) { $labels = []; foreach ( $languageCodes as $languageCode ) { $labels[$languageCode] = 'label-' . $languageCode . '-' . $entityId->getSerialization(); @@ -93,7 +93,7 @@ class MatchingTermsLookupSearchInteractorTest extends \PHPUnit\Framework\TestCas } ); $mock->method( 'getDescriptions' ) - ->willReturnCallback( function( EntityId $entityId, $languageCodes ) { + ->willReturnCallback( static function( EntityId $entityId, $languageCodes ) { $descriptions = []; foreach ( $languageCodes as $languageCode ) { $descriptions[$languageCode] = @@ -129,14 +129,14 @@ class MatchingTermsLookupSearchInteractorTest extends \PHPUnit\Framework\TestCas public function getMockLanguageFallbackChainFromLanguage( $langCode ) { $mockFallbackChain = $this->createMock( TermLanguageFallbackChain::class ); $mockFallbackChain->method( 'getFetchLanguageCodes' ) - ->willReturnCallback( function () use( $langCode ) { + ->willReturnCallback( static function () use( $langCode ) { if ( $langCode === 'en-gb' || $langCode === 'en-ca' ) { return [ $langCode, 'en' ]; } return [ $langCode ]; // no fallback for everything else... } ); $mockFallbackChain->method( 'extractPreferredValue' ) - ->willReturnCallback( function( $data ) { + ->willReturnCallback( static function( $data ) { foreach ( $data as $languageCode => $value ) { return [ 'value' => $value, diff --git a/lib/tests/phpunit/LanguageFallbackChainFactoryTest.php b/lib/tests/phpunit/LanguageFallbackChainFactoryTest.php index 1dc4e02..6ba313a 100644 --- a/lib/tests/phpunit/LanguageFallbackChainFactoryTest.php +++ b/lib/tests/phpunit/LanguageFallbackChainFactoryTest.php @@ -38,14 +38,14 @@ class LanguageFallbackChainFactoryTest extends MediaWikiIntegrationTestCase { */ private function assertChainEquals( array $expectedItems, array $chain ) { // format both chains into a string for a nice message in case of assertion failure - $expectedChain = implode( ',', array_map( function ( $expected ) { + $expectedChain = implode( ',', array_map( static function ( $expected ) { if ( is_array( $expected ) ) { return "{$expected[0]}({$expected[1]})"; } else { return $expected; } }, $expectedItems ) ); - $actualChain = implode( ',', array_map( function ( LanguageWithConversion $actual ) { + $actualChain = implode( ',', array_map( static function ( LanguageWithConversion $actual ) { if ( $actual->getSourceLanguageCode() === null ) { return $actual->getLanguageCode(); } else { diff --git a/lib/tests/phpunit/LanguageFallbackIndicatorTest.php b/lib/tests/phpunit/LanguageFallbackIndicatorTest.php index 7dfaa65..2b02c77 100644 --- a/lib/tests/phpunit/LanguageFallbackIndicatorTest.php +++ b/lib/tests/phpunit/LanguageFallbackIndicatorTest.php @@ -21,7 +21,7 @@ class LanguageFallbackIndicatorTest extends \PHPUnit\Framework\TestCase { private function getIndicator() { $languageNameLookup = $this->createMock( LanguageNameLookup::class ); $languageNameLookup->method( 'getNameForTerms' ) - ->willReturnCallback( function( $languageCode ) { + ->willReturnCallback( static function( $languageCode ) { $names = [ 'de' => 'Deutsch', 'de-at' => 'Österreichisches Deutsch', diff --git a/lib/tests/phpunit/MockRepositoryTest.php b/lib/tests/phpunit/MockRepositoryTest.php index 8557bf4..574c39b 100644 --- a/lib/tests/phpunit/MockRepositoryTest.php +++ b/lib/tests/phpunit/MockRepositoryTest.php @@ -691,7 +691,7 @@ class MockRepositoryTest extends TestCase { ->onNonexistentEntity( $failTest ) ->onConcreteRevision( $failTest ) ->onRedirect( - function ( $revisionId, $targetId ) { + static function ( $revisionId, $targetId ) { return [ $revisionId, $targetId ]; } ) diff --git a/lib/tests/phpunit/Modules/CurrentSiteModuleTest.php b/lib/tests/phpunit/Modules/CurrentSiteModuleTest.php index f9b9ccf..84e376e 100644 --- a/lib/tests/phpunit/Modules/CurrentSiteModuleTest.php +++ b/lib/tests/phpunit/Modules/CurrentSiteModuleTest.php @@ -30,7 +30,7 @@ class CurrentSiteModuleTest extends \PHPUnit\Framework\TestCase { private function getContext(): Context { $context = $this->createMock( Context::class ); $context->method( 'msg' ) - ->willReturnCallback( function ( $key ) { + ->willReturnCallback( static function ( $key ) { return new RawMessage( "($key)" ); } ); diff --git a/lib/tests/phpunit/Modules/DataTypesModuleTest.php b/lib/tests/phpunit/Modules/DataTypesModuleTest.php index f8f1011..d8821f6 100644 --- a/lib/tests/phpunit/Modules/DataTypesModuleTest.php +++ b/lib/tests/phpunit/Modules/DataTypesModuleTest.php @@ -22,7 +22,7 @@ class DataTypesModuleTest extends \PHPUnit\Framework\TestCase { $validResourceDefinitions = [ [ 'datatypesconfigvarname' => 'foo', - 'datatypefactory' => function() { + 'datatypefactory' => static function() { return new DataTypeFactory( [] ); }, ], @@ -49,7 +49,7 @@ class DataTypesModuleTest extends \PHPUnit\Framework\TestCase { $validDefinition = [ 'datatypesconfigvarname' => 'foo', - 'datatypefactory' => function() { + 'datatypefactory' => static function() { return new DataTypeFactory( [] ); }, ]; @@ -84,7 +84,7 @@ class DataTypesModuleTest extends \PHPUnit\Framework\TestCase { array_merge( $validDefinition, [ - 'datatypefactory' => function() { + 'datatypefactory' => static function() { return null; }, ] diff --git a/lib/tests/phpunit/Modules/SitesModuleTest.php b/lib/tests/phpunit/Modules/SitesModuleTest.php index 1586cc9..6497b30 100644 --- a/lib/tests/phpunit/Modules/SitesModuleTest.php +++ b/lib/tests/phpunit/Modules/SitesModuleTest.php @@ -30,7 +30,7 @@ class SitesModuleTest extends \PHPUnit\Framework\TestCase { private function getContext(): Context { $context = $this->createMock( Context::class ); $context->method( 'msg' ) - ->willReturnCallback( function ( $key ) { + ->willReturnCallback( static function ( $key ) { return new RawMessage( "($key)" ); } ); diff --git a/lib/tests/phpunit/ParserFunctions/CommaSeparatedListTest.php b/lib/tests/phpunit/ParserFunctions/CommaSeparatedListTest.php index 515e2dc..4068542 100644 --- a/lib/tests/phpunit/ParserFunctions/CommaSeparatedListTest.php +++ b/lib/tests/phpunit/ParserFunctions/CommaSeparatedListTest.php @@ -25,7 +25,7 @@ class CommaSeparatedListTest extends \PHPUnit\Framework\TestCase { public function testHandle() { $language = $this->createMock( Language::class ); - $language->method( 'commaList' )->willReturnCallback( function ( $words ) { + $language->method( 'commaList' )->willReturnCallback( static function ( $words ) { return implode( ', ', $words ); } ); $parser = $this->createMock( Parser::class ); diff --git a/lib/tests/phpunit/Serialization/CallbackFactoryTest.php b/lib/tests/phpunit/Serialization/CallbackFactoryTest.php index e63b712..4e1b4d3 100644 --- a/lib/tests/phpunit/Serialization/CallbackFactoryTest.php +++ b/lib/tests/phpunit/Serialization/CallbackFactoryTest.php @@ -94,7 +94,7 @@ class CallbackFactoryTest extends \PHPUnit\Framework\TestCase { $parser = $this->createMock( EntityIdParser::class ); $parser->expects( $this->once() ) ->method( 'parse' ) - ->willReturnCallback( function ( string $id ) { + ->willReturnCallback( static function ( string $id ) { return new NumericPropertyId( $id ); } ); diff --git a/lib/tests/phpunit/Serialization/SerializationModifierTest.php b/lib/tests/phpunit/Serialization/SerializationModifierTest.php index abfa4c4..6253413 100644 --- a/lib/tests/phpunit/Serialization/SerializationModifierTest.php +++ b/lib/tests/phpunit/Serialization/SerializationModifierTest.php @@ -25,7 +25,7 @@ class SerializationModifierTest extends \PHPUnit\Framework\TestCase { return [ [ '', - function( $value ) { + static function( $value ) { $value['foo'] = 'bar'; return $value; }, @@ -34,7 +34,7 @@ class SerializationModifierTest extends \PHPUnit\Framework\TestCase { ], [ 'foo/*', - function( $value ) { + static function( $value ) { if ( isset( $value['a'] ) ) { unset( $value['a'] ); $value['removed'] = true; @@ -57,7 +57,7 @@ class SerializationModifierTest extends \PHPUnit\Framework\TestCase { ], [ 'entities/*/claims/*/*/references/*/snaks/*/type', - function( $value ) { + static function( $value ) { if ( $value === 'bar' ) { $value = 'BAR'; } @@ -191,11 +191,11 @@ class SerializationModifierTest extends \PHPUnit\Framework\TestCase { } public static function provideCallbacks(): iterable { - $typeEntityCallback = function ( $value ) { + $typeEntityCallback = static function ( $value ) { $value['type'] = 'entity'; return $value; }; - $typeLabelCallback = function ( $value ) { + $typeLabelCallback = static function ( $value ) { $value['type'] = 'label'; return $value; }; diff --git a/lib/tests/phpunit/ServiceBySourceAndTypeDispatcherTest.php b/lib/tests/phpunit/ServiceBySourceAndTypeDispatcherTest.php index 5479125..2e7a07e 100644 --- a/lib/tests/phpunit/ServiceBySourceAndTypeDispatcherTest.php +++ b/lib/tests/phpunit/ServiceBySourceAndTypeDispatcherTest.php @@ -39,7 +39,7 @@ class ServiceBySourceAndTypeDispatcherTest extends TestCase { } private static function getSomeServiceReturningCallback( $fakeServiceToReturn = null ) { - return function () use ( $fakeServiceToReturn ) { + return static function () use ( $fakeServiceToReturn ) { return $fakeServiceToReturn ?? new stdClass(); }; } diff --git a/lib/tests/phpunit/ServiceByTypeDispatcherTest.php b/lib/tests/phpunit/ServiceByTypeDispatcherTest.php index 025e79b..009b6df 100644 --- a/lib/tests/phpunit/ServiceByTypeDispatcherTest.php +++ b/lib/tests/phpunit/ServiceByTypeDispatcherTest.php @@ -27,7 +27,7 @@ class ServiceByTypeDispatcherTest extends TestCase { } private static function getSomeServiceReturningCallback( $fakeServiceToReturn = null ) { - return function () use ( $fakeServiceToReturn ) { + return static function () use ( $fakeServiceToReturn ) { return $fakeServiceToReturn ?? new stdClass(); }; } diff --git a/lib/tests/phpunit/SimpleCacheTestCase.php b/lib/tests/phpunit/SimpleCacheTestCase.php index b4be5ae..7375c63 100644 --- a/lib/tests/phpunit/SimpleCacheTestCase.php +++ b/lib/tests/phpunit/SimpleCacheTestCase.php @@ -283,7 +283,7 @@ abstract class SimpleCacheTestCase extends TestCase { $this->markTestSkipped( $this->skippedTests[__FUNCTION__] ); } - $gen = function () { + $gen = static function () { yield 'key0' => 'value0'; yield 'key1' => 'value1'; }; @@ -327,7 +327,7 @@ abstract class SimpleCacheTestCase extends TestCase { $this->markTestSkipped( $this->skippedTests[__FUNCTION__] ); } - $gen = function () { + $gen = static function () { yield 1 => 'key0'; yield 1 => 'key1'; }; @@ -371,7 +371,7 @@ abstract class SimpleCacheTestCase extends TestCase { $this->markTestSkipped( $this->skippedTests[__FUNCTION__] ); } - $gen = function () { + $gen = static function () { yield 1 => 'key0'; yield 1 => 'key1'; }; @@ -463,7 +463,7 @@ abstract class SimpleCacheTestCase extends TestCase { $this->markTestSkipped( $this->skippedTests[__FUNCTION__] ); } - $values = function () use ( $key ) { + $values = static function () use ( $key ) { yield 'key1' => 'foo'; yield $key => 'bar'; yield 'key2' => 'baz'; diff --git a/lib/tests/phpunit/SourceDispatchingPropertyDataTypeLookupTest.php b/lib/tests/phpunit/SourceDispatchingPropertyDataTypeLookupTest.php index 898d2e3..84945f3 100644 --- a/lib/tests/phpunit/SourceDispatchingPropertyDataTypeLookupTest.php +++ b/lib/tests/phpunit/SourceDispatchingPropertyDataTypeLookupTest.php @@ -54,7 +54,7 @@ class SourceDispatchingPropertyDataTypeLookupTest extends TestCase { ->willReturn( $dataTypeId ); $this->lookupCallbacks = [ - $propertySourceName => function () use ( $propertyDataTypeLookup ) { + $propertySourceName => static function () use ( $propertyDataTypeLookup ) { return $propertyDataTypeLookup; }, ]; @@ -78,7 +78,7 @@ class SourceDispatchingPropertyDataTypeLookupTest extends TestCase { $calls = 0; $this->lookupCallbacks = [ - $propertySourceName => function () use ( &$calls, $propertyDataTypeLookup ) { + $propertySourceName => static function () use ( &$calls, $propertyDataTypeLookup ) { $calls++; return $propertyDataTypeLookup; }, diff --git a/lib/tests/phpunit/StatsdRecordingSimpleCacheTest.php b/lib/tests/phpunit/StatsdRecordingSimpleCacheTest.php index 554bf89..c89c59c 100644 --- a/lib/tests/phpunit/StatsdRecordingSimpleCacheTest.php +++ b/lib/tests/phpunit/StatsdRecordingSimpleCacheTest.php @@ -30,7 +30,7 @@ class StatsdRecordingSimpleCacheTest extends \PHPUnit\Framework\TestCase { $innerCache->expects( $this->once() ) ->method( 'get' ) ->with( 'nonexistingkey' ) - ->willReturnCallback( function( $a, $default ) { + ->willReturnCallback( static function( $a, $default ) { return $default; } ); @@ -62,7 +62,7 @@ class StatsdRecordingSimpleCacheTest extends \PHPUnit\Framework\TestCase { $innerCache->expects( $this->once() ) ->method( 'getMultiple' ) ->with( [ 'key', 'key1', 'key2' ] ) - ->willReturnCallback( function( $a, $default ) { + ->willReturnCallback( static function( $a, $default ) { return [ 'key' => 'cachedValue', 'key1' => $default, 'key2' => $default ]; } ); @@ -114,7 +114,7 @@ class StatsdRecordingSimpleCacheTest extends \PHPUnit\Framework\TestCase { $innerCache->expects( $this->once() ) ->method( 'getMultiple' ) ->with( [ 'key1', 'key2' ] ) - ->willReturnCallback( function( $a, $default ) { + ->willReturnCallback( static function( $a, $default ) { return [ 'key1' => 'cachehit', 'key2' => $default ]; } ); diff --git a/lib/tests/phpunit/Store/CacheRetrievingEntityRevisionLookupTest.php b/lib/tests/phpunit/Store/CacheRetrievingEntityRevisionLookupTest.php index 99ff819..3d3f447 100644 --- a/lib/tests/phpunit/Store/CacheRetrievingEntityRevisionLookupTest.php +++ b/lib/tests/phpunit/Store/CacheRetrievingEntityRevisionLookupTest.php @@ -156,7 +156,7 @@ class CacheRetrievingEntityRevisionLookupTest extends EntityRevisionLookupTestCa return $result->onNonexistentEntity( $shouldNotBeCalled ) ->onRedirect( $shouldNotBeCalled ) - ->onConcreteRevision( function ( $revId ) { + ->onConcreteRevision( static function ( $revId ) { return $revId; } ) ->map(); diff --git a/lib/tests/phpunit/Store/CachingEntityRevisionLookupTest.php b/lib/tests/phpunit/Store/CachingEntityRevisionLookupTest.php index e3decd1..2090347 100644 --- a/lib/tests/phpunit/Store/CachingEntityRevisionLookupTest.php +++ b/lib/tests/phpunit/Store/CachingEntityRevisionLookupTest.php @@ -257,7 +257,7 @@ class CachingEntityRevisionLookupTest extends EntityRevisionLookupTestCase { return $result->onNonexistentEntity( $shouldNotBeCalled ) ->onRedirect( $shouldNotBeCalled ) - ->onConcreteRevision( function ( $revId ) { + ->onConcreteRevision( static function ( $revId ) { return $revId; } ) ->map(); diff --git a/lib/tests/phpunit/Store/EntityLinkTargetEntityIdLookupTest.php b/lib/tests/phpunit/Store/EntityLinkTargetEntityIdLookupTest.php index 921ddaa..c6fec03 100644 --- a/lib/tests/phpunit/Store/EntityLinkTargetEntityIdLookupTest.php +++ b/lib/tests/phpunit/Store/EntityLinkTargetEntityIdLookupTest.php @@ -81,7 +81,7 @@ class EntityLinkTargetEntityIdLookupTest extends TestCase { private function getMockEntityNamespaceLookupWhere111IsItemNamespace() { $mock = $this->createMock( EntityNamespaceLookup::class ); $mock->method( 'getEntityType' )->willReturnCallback( - function ( $namespace ) { + static function ( $namespace ) { return $namespace === self::ITEM_NAMESPACE ? 'item' : 'otherEntityType'; } ); @@ -91,7 +91,7 @@ class EntityLinkTargetEntityIdLookupTest extends TestCase { private function newMockEntityIdParserForId( EntityId $id ) { $mock = $this->createMock( EntityIdParser::class ); $mock->method( 'parse' )->willReturnCallback( - function ( $toParse ) use ( $id ) { + static function ( $toParse ) use ( $id ) { if ( $toParse !== $id->getSerialization() ) { throw new EntityIdParsingException( 'mock' ); } diff --git a/lib/tests/phpunit/Store/LanguageFallbackLabelDescriptionLookupTest.php b/lib/tests/phpunit/Store/LanguageFallbackLabelDescriptionLookupTest.php index 517580c..924334a 100644 --- a/lib/tests/phpunit/Store/LanguageFallbackLabelDescriptionLookupTest.php +++ b/lib/tests/phpunit/Store/LanguageFallbackLabelDescriptionLookupTest.php @@ -99,7 +99,7 @@ class LanguageFallbackLabelDescriptionLookupTest extends MediaWikiIntegrationTes $languageFallbackChain = $this->createMock( TermLanguageFallbackChain::class ); $languageFallbackChain->method( 'extractPreferredValue' ) - ->willReturnCallback( function( array $fallbackData ) use ( $languageCode ) { + ->willReturnCallback( static function( array $fallbackData ) use ( $languageCode ) { if ( $languageCode === 'zh' && array_key_exists( 'zh-cn', $fallbackData ) ) { return [ 'value' => 'fallbackterm', 'language' => 'zh-cn', 'source' => 'zh-xy' ]; } else { @@ -108,7 +108,7 @@ class LanguageFallbackLabelDescriptionLookupTest extends MediaWikiIntegrationTes } ); $languageFallbackChain->method( 'getFetchLanguageCodes' ) - ->willReturnCallback( function() use ( $languageCode ) { + ->willReturnCallback( static function() use ( $languageCode ) { if ( $languageCode === 'zh' ) { return [ 'zh', 'zh-cn', 'zh-xy' ]; } else { diff --git a/lib/tests/phpunit/Store/LatestRevisionIdResultTest.php b/lib/tests/phpunit/Store/LatestRevisionIdResultTest.php index 9efb3dd..500d416 100644 --- a/lib/tests/phpunit/Store/LatestRevisionIdResultTest.php +++ b/lib/tests/phpunit/Store/LatestRevisionIdResultTest.php @@ -23,7 +23,7 @@ class LatestRevisionIdResultTest extends TestCase { } public function testOnNonexistentEntity_SomeHandlerGiven_ReturnsNewInstanceOfResult() { - $noop = function () { + $noop = static function () { }; $initialResult = LatestRevisionIdResult::nonexistentEntity(); @@ -33,7 +33,7 @@ class LatestRevisionIdResultTest extends TestCase { } public function testOnConcreteRevision_SomeHandlerGiven_ReturnsNewInstanceOfResult() { - $noop = function () { + $noop = static function () { }; $initialResult = LatestRevisionIdResult::nonexistentEntity(); @@ -43,7 +43,7 @@ class LatestRevisionIdResultTest extends TestCase { } public function testRedirect_SomeHandlerGiven_ReturnsNewInstanceOfResult() { - $noop = function () { + $noop = static function () { }; $initialResult = LatestRevisionIdResult::nonexistentEntity(); @@ -60,7 +60,7 @@ class LatestRevisionIdResultTest extends TestCase { $result = $nonexistentEntity->onConcreteRevision( $shouldNotBeCalled ) ->onRedirect( $shouldNotBeCalled ) - ->onNonexistentEntity( function () { + ->onNonexistentEntity( static function () { return 'nonexistent'; } ) ->map(); @@ -78,7 +78,7 @@ class LatestRevisionIdResultTest extends TestCase { $result = $redirectResult->onConcreteRevision( $shouldNotBeCalled ) ->onNonexistentEntity( $shouldNotBeCalled ) - ->onRedirect( function () { + ->onRedirect( static function () { return 'redirect'; } ) ->map(); @@ -94,7 +94,7 @@ class LatestRevisionIdResultTest extends TestCase { $result = $concreteRevisionResult->onRedirect( $shouldNotBeCalled ) ->onNonexistentEntity( $shouldNotBeCalled ) - ->onConcreteRevision( function () { + ->onConcreteRevision( static function () { return 'concrete revision'; } ) ->map(); diff --git a/lib/tests/phpunit/Store/MatchingTermsLookupFactoryTest.php b/lib/tests/phpunit/Store/MatchingTermsLookupFactoryTest.php index 6c9882c..27ecf77 100644 --- a/lib/tests/phpunit/Store/MatchingTermsLookupFactoryTest.php +++ b/lib/tests/phpunit/Store/MatchingTermsLookupFactoryTest.php @@ -91,7 +91,7 @@ class MatchingTermsLookupFactoryTest extends MediaWikiIntegrationTestCase { public function testReturnsWorkingLookup() { $factory = new MatchingTermsLookupFactory( new EntityIdComposer( [ - Item::ENTITY_TYPE => function( $uniquePartOfId ) { + Item::ENTITY_TYPE => static function( $uniquePartOfId ) { return new ItemId( 'Q' . $uniquePartOfId ); }, ] ), @@ -112,7 +112,7 @@ class MatchingTermsLookupFactoryTest extends MediaWikiIntegrationTestCase { ] ); $actual = $matchingTermsLookup->getMatchingTerms( [ $criteria ] ); - $results = array_map( function ( TermIndexEntry $entry ) { + $results = array_map( static function ( TermIndexEntry $entry ) { return $entry->getEntityId()->getSerialization(); }, $actual ); diff --git a/lib/tests/phpunit/Store/PrefetchingWikiPageEntityMetaDataAccessorTest.php b/lib/tests/phpunit/Store/PrefetchingWikiPageEntityMetaDataAccessorTest.php index f3fe2df..99529bf 100644 --- a/lib/tests/phpunit/Store/PrefetchingWikiPageEntityMetaDataAccessorTest.php +++ b/lib/tests/phpunit/Store/PrefetchingWikiPageEntityMetaDataAccessorTest.php @@ -144,7 +144,7 @@ class PrefetchingWikiPageEntityMetaDataAccessorTest extends \PHPUnit\Framework\T $lookup = $this->createMock( WikiPageEntityMetaDataAccessor::class ); $lookup->expects( $this->exactly( 3 ) ) ->method( 'loadRevisionInformation' ) - ->willReturnCallback( function( array $entityIds, $mode ) { + ->willReturnCallback( static function( array $entityIds, $mode ) { $ret = []; /** diff --git a/lib/tests/phpunit/Store/RevisionBasedEntityLookupTest.php b/lib/tests/phpunit/Store/RevisionBasedEntityLookupTest.php index 39b7986..28279d1 100644 --- a/lib/tests/phpunit/Store/RevisionBasedEntityLookupTest.php +++ b/lib/tests/phpunit/Store/RevisionBasedEntityLookupTest.php @@ -55,7 +55,7 @@ class RevisionBasedEntityLookupTest extends \PHPUnit\Framework\TestCase { public static function hasEntityProvider() { $cases = self::getEntityProvider(); - $cases = array_map( function( $case ) { + $cases = array_map( static function( $case ) { // true if set an id is expected, false otherwise. $case[2] = $case[2] !== null; diff --git a/lib/tests/phpunit/Store/Sql/PropertyInfoTableTest.php b/lib/tests/phpunit/Store/Sql/PropertyInfoTableTest.php index f987fd3..168eca4 100644 --- a/lib/tests/phpunit/Store/Sql/PropertyInfoTableTest.php +++ b/lib/tests/phpunit/Store/Sql/PropertyInfoTableTest.php @@ -197,7 +197,7 @@ class PropertyInfoTableTest extends MediaWikiIntegrationTestCase { private function getEntityComposer() { return new EntityIdComposer( [ - Property::ENTITY_TYPE => function( $uniquePart ) { + Property::ENTITY_TYPE => static function( $uniquePart ) { return new NumericPropertyId( 'P' . $uniquePart ); }, ] ); diff --git a/lib/tests/phpunit/Store/Sql/Terms/DatabaseInnerTermStoreCleanerTest.php b/lib/tests/phpunit/Store/Sql/Terms/DatabaseInnerTermStoreCleanerTest.php index 3229acd..08514b5 100644 --- a/lib/tests/phpunit/Store/Sql/Terms/DatabaseInnerTermStoreCleanerTest.php +++ b/lib/tests/phpunit/Store/Sql/Terms/DatabaseInnerTermStoreCleanerTest.php @@ -262,7 +262,7 @@ class DatabaseInnerTermStoreCleanerTest extends MediaWikiIntegrationTestCase { ->select( $field ) ->from( $table ) ->assertResultSet( array_map( - function( $element ) { + static function( $element ) { return [ $element ]; }, $elements diff --git a/lib/tests/phpunit/Store/Sql/Terms/DatabaseMatchingTermsLookupTest.php b/lib/tests/phpunit/Store/Sql/Terms/DatabaseMatchingTermsLookupTest.php index 71f5605..1c9053c 100644 --- a/lib/tests/phpunit/Store/Sql/Terms/DatabaseMatchingTermsLookupTest.php +++ b/lib/tests/phpunit/Store/Sql/Terms/DatabaseMatchingTermsLookupTest.php @@ -212,10 +212,10 @@ class DatabaseMatchingTermsLookupTest extends MediaWikiIntegrationTestCase { ); $composer = new EntityIdComposer( [ - 'item' => function ( $uniquePart ) { + 'item' => static function ( $uniquePart ) { return new ItemId( 'Q' . $uniquePart ); }, - 'property' => function ( $uniquePart ) { + 'property' => static function ( $uniquePart ) { return new NumericPropertyId( 'P' . $uniquePart ); }, ] ); diff --git a/lib/tests/phpunit/Store/Sql/Terms/DatabaseTermInLangIdsAcquirerTest.php b/lib/tests/phpunit/Store/Sql/Terms/DatabaseTermInLangIdsAcquirerTest.php index 88949fd..4234a78 100644 --- a/lib/tests/phpunit/Store/Sql/Terms/DatabaseTermInLangIdsAcquirerTest.php +++ b/lib/tests/phpunit/Store/Sql/Terms/DatabaseTermInLangIdsAcquirerTest.php @@ -261,7 +261,7 @@ class DatabaseTermInLangIdsAcquirerTest extends TestCase { 1, array_filter( $acquiredTermIds, - function ( $id ) use ( $labelEnSameTermInLangId ) { + static function ( $id ) use ( $labelEnSameTermInLangId ) { return $id === $labelEnSameTermInLangId; } ) @@ -270,7 +270,7 @@ class DatabaseTermInLangIdsAcquirerTest extends TestCase { 2, array_filter( $acquiredTermIds, - function ( $id ) use ( $aliasEnSameTermInLangId ) { + static function ( $id ) use ( $aliasEnSameTermInLangId ) { return $id === $aliasEnSameTermInLangId; } ) diff --git a/lib/tests/phpunit/Store/Sql/Terms/DatabaseTermStoreWriterTestGetTermsTrait.php b/lib/tests/phpunit/Store/Sql/Terms/DatabaseTermStoreWriterTestGetTermsTrait.php index 6caf405..3c8c0b3 100644 --- a/lib/tests/phpunit/Store/Sql/Terms/DatabaseTermStoreWriterTestGetTermsTrait.php +++ b/lib/tests/phpunit/Store/Sql/Terms/DatabaseTermStoreWriterTestGetTermsTrait.php @@ -66,19 +66,19 @@ trait DatabaseTermStoreWriterTestGetTermsTrait { return new Fingerprint( new TermList( array_map( - function ( $language, $labels ) { + static function ( $language, $labels ) { return new Term( $language, $labels[0] ); }, array_keys( $labels ), $labels ) ), new TermList( array_map( - function ( $language, $descriptions ) { + static function ( $language, $descriptions ) { return new Term( $language, $descriptions[0] ); }, array_keys( $descriptions ), $descriptions ) ), new AliasGroupList( array_map( - function ( $language, $aliases ) { + static function ( $language, $aliases ) { return new AliasGroup( $language, $aliases ); }, array_keys( $aliases ), $aliases diff --git a/lib/tests/phpunit/Store/Sql/Terms/TermInLangIdsResolverFactoryTest.php b/lib/tests/phpunit/Store/Sql/Terms/TermInLangIdsResolverFactoryTest.php index 4c1e18c..1a909fc 100644 --- a/lib/tests/phpunit/Store/Sql/Terms/TermInLangIdsResolverFactoryTest.php +++ b/lib/tests/phpunit/Store/Sql/Terms/TermInLangIdsResolverFactoryTest.php @@ -92,7 +92,7 @@ class TermInLangIdsResolverFactoryTest extends MediaWikiIntegrationTestCase { } public function testReturnsWorkingResolver(): void { - $expectedTerms = array_map( function ( string $label ): array { + $expectedTerms = array_map( static function ( string $label ): array { return [ $label ]; }, self::MOCK_LANG_LABELS ); diff --git a/lib/tests/phpunit/Store/TypeDispatchingEntityRevisionLookupTest.php b/lib/tests/phpunit/Store/TypeDispatchingEntityRevisionLookupTest.php index 890188b..3e1cb70 100644 --- a/lib/tests/phpunit/Store/TypeDispatchingEntityRevisionLookupTest.php +++ b/lib/tests/phpunit/Store/TypeDispatchingEntityRevisionLookupTest.php @@ -26,7 +26,7 @@ class TypeDispatchingEntityRevisionLookupTest extends \PHPUnit\Framework\TestCas public function testGivenInvalidCallback_getEntityRevisionFails() { $lookup = new TypeDispatchingEntityRevisionLookup( [ - 'property' => function ( EntityRevisionLookup $defaultService ) { + 'property' => static function ( EntityRevisionLookup $defaultService ) { return (object)[]; }, ], diff --git a/lib/tests/phpunit/Store/TypeDispatchingEntityStoreTest.php b/lib/tests/phpunit/Store/TypeDispatchingEntityStoreTest.php index a9e375d..2b05ce6 100644 --- a/lib/tests/phpunit/Store/TypeDispatchingEntityStoreTest.php +++ b/lib/tests/phpunit/Store/TypeDispatchingEntityStoreTest.php @@ -59,7 +59,7 @@ class TypeDispatchingEntityStoreTest extends \PHPUnit\Framework\TestCase { public function testGivenInvalidCallback_saveEntityFails() { $store = new TypeDispatchingEntityStore( [ - 'property' => function ( EntityStore $defaultService ) { + 'property' => static function ( EntityStore $defaultService ) { return (object)[]; }, ], diff --git a/lib/tests/phpunit/TermLanguageFallbackChainTest.php b/lib/tests/phpunit/TermLanguageFallbackChainTest.php index b93641d..3607b1e 100644 --- a/lib/tests/phpunit/TermLanguageFallbackChainTest.php +++ b/lib/tests/phpunit/TermLanguageFallbackChainTest.php @@ -31,17 +31,17 @@ class TermLanguageFallbackChainTest extends MediaWikiIntegrationTestCase { '', '⧼Lang⧽', ]; - $chainOfLanguages = array_map( function ( string $langCode ) { + $chainOfLanguages = array_map( static function ( string $langCode ) { return LanguageWithConversion::factory( $langCode ); }, $chainOfTestLanguageCodes ); $stubContentLanguages = $this->createStub( ContentLanguages::class ); $stubContentLanguages->method( 'hasLanguage' )->willReturnCallback( - function ( $langCode ) { + static function ( $langCode ) { return $langCode === 'de' || $langCode === 'en'; } ); $chain = new TermLanguageFallbackChain( $chainOfLanguages, $stubContentLanguages ); - $actualFallbackChain = array_map( function ( LanguageWithConversion $lang ) { + $actualFallbackChain = array_map( static function ( LanguageWithConversion $lang ) { return $lang->getLanguageCode(); }, $chain->getFallbackChain() ); @@ -53,7 +53,7 @@ class TermLanguageFallbackChainTest extends MediaWikiIntegrationTestCase { $stubContentLanguages = $this->createStub( ContentLanguages::class ); $stubContentLanguages->method( 'hasLanguage' )->willReturn( false ); $chain = new TermLanguageFallbackChain( [ LanguageWithConversion::factory( '⧼Lang⧽' ) ], $stubContentLanguages ); - $actualFallbackChain = array_map( function ( LanguageWithConversion $lang ) { + $actualFallbackChain = array_map( static function ( LanguageWithConversion $lang ) { return $lang->getLanguageCode(); }, $chain->getFallbackChain() ); diff --git a/lib/tests/phpunit/WikibaseContentLanguagesTest.php b/lib/tests/phpunit/WikibaseContentLanguagesTest.php index dd6b28e..912b037 100644 --- a/lib/tests/phpunit/WikibaseContentLanguagesTest.php +++ b/lib/tests/phpunit/WikibaseContentLanguagesTest.php @@ -51,7 +51,7 @@ class WikibaseContentLanguagesTest extends MediaWikiIntegrationTestCase { $testLanguages = new StaticContentLanguages( [ 'test' ] ); $this->setTemporaryHook( 'WikibaseContentLanguages', - function ( array &$contentLanguages ) use ( $testLanguages ) { + static function ( array &$contentLanguages ) use ( $testLanguages ) { $contentLanguages['test'] = $testLanguages; } ); diff --git a/lib/tests/phpunit/WikibaseSettingsTest.php b/lib/tests/phpunit/WikibaseSettingsTest.php index 8de9ec6..9dbb09b 100644 --- a/lib/tests/phpunit/WikibaseSettingsTest.php +++ b/lib/tests/phpunit/WikibaseSettingsTest.php @@ -93,7 +93,7 @@ class WikibaseSettingsTest extends \PHPUnit\Framework\TestCase { yield 'no default setting, array' => [ $default, $custom, $expected ]; unset( $custom ); - $default = [ 'key' => function () { + $default = [ 'key' => static function () { return 'value'; } ]; $custom['key'] = 'custom value'; @@ -101,7 +101,7 @@ class WikibaseSettingsTest extends \PHPUnit\Framework\TestCase { yield "['key'], callable->scalar" => [ $default, $custom, $expected ]; unset( $custom ); - $default = [ 'key' => function () { + $default = [ 'key' => static function () { return [ 'one', 'two' ]; } ]; $custom['key'] = [ 'ONE', 'TWO' ]; diff --git a/package-lock.json b/package-lock.json index b9daaf7..1e4f603 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2697,9 +2697,9 @@ } }, "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, "engines": { "node": ">=6" @@ -4743,9 +4743,9 @@ } }, "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "dev": true, "engines": { "node": ">=0.3.1" @@ -9879,32 +9879,31 @@ "dev": true }, "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", + "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", "dev": true, "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" }, "bin": { "_mocha": "bin/_mocha", @@ -9912,10 +9911,15 @@ }, "engines": { "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" } }, "node_modules/mocha/node_modules/cliui": { @@ -9929,51 +9933,27 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/mocha/node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "node_modules/mocha/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "ms": "^2.1.3" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" + "node": ">=6.0" }, - "engines": { - "node": "*" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -9982,15 +9962,6 @@ "node": ">=10" } }, - "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -10070,10 +10041,16 @@ } }, "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -11037,25 +11014,6 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -12029,9 +11987,9 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "dependencies": { "randombytes": "^2.1.0" @@ -13920,9 +13878,9 @@ } }, "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", "dev": true }, "node_modules/wrap-ansi": { @@ -14054,9 +14012,9 @@ } }, "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "engines": { "node": ">=10" @@ -16393,9 +16351,9 @@ } }, "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true }, "ansi-escapes": { @@ -17899,9 +17857,9 @@ "dev": true }, "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "dev": true }, "diff-sequences": { @@ -21787,34 +21745,42 @@ "dev": true }, "mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", + "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", "dev": true, "requires": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" }, "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -21826,55 +21792,22 @@ "wrap-ansi": "^7.0.0" } }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } + "ms": "^2.1.3" } }, "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "requires": { "brace-expansion": "^2.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - } } }, "ms": { @@ -21946,9 +21879,9 @@ } }, "nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true }, "natural-compare": { @@ -22562,14 +22495,6 @@ "nanoid": "^3.3.7", "picocolors": "^1.1.0", "source-map-js": "^1.2.1" - }, - "dependencies": { - "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true - } } }, "postcss-html": { @@ -23359,9 +23284,9 @@ } }, "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -24712,9 +24637,9 @@ } }, "workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", "dev": true }, "wrap-ansi": { @@ -24810,9 +24735,9 @@ } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true }, "yargs-unparser": { diff --git a/repo/WikibaseRepo.FederatedProperties.OverrideEntityServices.php b/repo/WikibaseRepo.FederatedProperties.OverrideEntityServices.php index 6047970..5b47e3a 100644 --- a/repo/WikibaseRepo.FederatedProperties.OverrideEntityServices.php +++ b/repo/WikibaseRepo.FederatedProperties.OverrideEntityServices.php @@ -21,29 +21,29 @@ use Wikibase\Repo\WikibaseRepo; return [ 'property' => [ - Def::ARTICLE_ID_LOOKUP_CALLBACK => function () { + Def::ARTICLE_ID_LOOKUP_CALLBACK => static function () { return new EntityArticleIdNullLookup(); }, - Def::URL_LOOKUP_CALLBACK => function () { + Def::URL_LOOKUP_CALLBACK => static function () { return WikibaseRepo::getFederatedPropertiesServiceFactory()->newApiEntityUrlLookup(); }, - Def::TITLE_TEXT_LOOKUP_CALLBACK => function () { + Def::TITLE_TEXT_LOOKUP_CALLBACK => static function () { return WikibaseRepo::getFederatedPropertiesServiceFactory()->newApiEntityTitleTextLookup(); }, - Def::ENTITY_SEARCH_CALLBACK => function() { + Def::ENTITY_SEARCH_CALLBACK => static function() { return WikibaseRepo::getFederatedPropertiesServiceFactory()->newApiEntitySearchHelper(); }, - Def::PREFETCHING_TERM_LOOKUP_CALLBACK => function() { + Def::PREFETCHING_TERM_LOOKUP_CALLBACK => static function() { return WikibaseRepo::getFederatedPropertiesServiceFactory()->newApiPrefetchingTermLookup(); }, - Def::REDIRECT_CHECKER_CALLBACK => function () { + Def::REDIRECT_CHECKER_CALLBACK => static function () { return new class implements EntityRedirectChecker { public function isRedirect( EntityId $id ): bool { return false; } }; }, - Def::EXISTENCE_CHECKER_CALLBACK => function () { + Def::EXISTENCE_CHECKER_CALLBACK => static function () { return WikibaseRepo::getFederatedPropertiesServiceFactory()->newApiEntityExistenceChecker(); }, ], diff --git a/repo/WikibaseRepo.ServiceWiring.php b/repo/WikibaseRepo.ServiceWiring.php index 442a952..403bae3 100644 --- a/repo/WikibaseRepo.ServiceWiring.php +++ b/repo/WikibaseRepo.ServiceWiring.php @@ -260,11 +260,11 @@ use Wikimedia\ObjectFactory\ObjectFactory; /** @phpcs-require-sorted-array */ return [ - 'WikibaseRepo.AliasTermBuffer' => function ( MediaWikiServices $services ): AliasTermBuffer { + 'WikibaseRepo.AliasTermBuffer' => static function ( MediaWikiServices $services ): AliasTermBuffer { return WikibaseRepo::getPrefetchingTermLookup( $services ); }, - 'WikibaseRepo.AllTypesEntityDeserializer' => function ( MediaWikiServices $services ): DispatchableDeserializer { + 'WikibaseRepo.AllTypesEntityDeserializer' => static function ( MediaWikiServices $services ): DispatchableDeserializer { $deserializerFactoryCallbacks = WikibaseRepo::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::DESERIALIZER_FACTORY_CALLBACK ); $baseDeserializerFactory = WikibaseRepo::getBaseDataModelDeserializerFactory( $services ); @@ -275,7 +275,7 @@ return [ return new DispatchingDeserializer( $deserializers ); }, - 'WikibaseRepo.AllTypesEntitySerializer' => function ( MediaWikiServices $services ): Serializer { + 'WikibaseRepo.AllTypesEntitySerializer' => static function ( MediaWikiServices $services ): Serializer { $serializerFactoryCallbacks = WikibaseRepo::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::SERIALIZER_FACTORY_CALLBACK ); $baseSerializerFactory = WikibaseRepo::getBaseDataModelSerializerFactory( $services ); @@ -288,11 +288,11 @@ return [ return new DispatchingSerializer( $serializers ); }, - 'WikibaseRepo.AnonymousEditWarningBuilder' => function ( MediaWikiServices $services ): AnonymousEditWarningBuilder { + 'WikibaseRepo.AnonymousEditWarningBuilder' => static function ( MediaWikiServices $services ): AnonymousEditWarningBuilder { return new AnonymousEditWarningBuilder( $services->getSpecialPageFactory(), $services->getTempUserConfig() ); }, - 'WikibaseRepo.ApiHelperFactory' => function ( MediaWikiServices $services ): ApiHelperFactory { + 'WikibaseRepo.ApiHelperFactory' => static function ( MediaWikiServices $services ): ApiHelperFactory { $store = WikibaseRepo::getStore( $services ); return new ApiHelperFactory( @@ -315,7 +315,7 @@ return [ ); }, - 'WikibaseRepo.BagOStuffSiteLinkConflictLookup' => function ( + 'WikibaseRepo.BagOStuffSiteLinkConflictLookup' => static function ( MediaWikiServices $services ): BagOStuffSiteLinkConflictLookup { return new BagOStuffSiteLinkConflictLookup( @@ -323,7 +323,7 @@ return [ ); }, - 'WikibaseRepo.BaseDataModelDeserializerFactory' => function ( MediaWikiServices $services ): DeserializerFactory { + 'WikibaseRepo.BaseDataModelDeserializerFactory' => static function ( MediaWikiServices $services ): DeserializerFactory { $dataTypeDefs = WikibaseRepo::getDataTypeDefinitions( $services ); return new DeserializerFactory( @@ -335,11 +335,11 @@ return [ ); }, - 'WikibaseRepo.BaseDataModelSerializerFactory' => function ( MediaWikiServices $services ): SerializerFactory { + 'WikibaseRepo.BaseDataModelSerializerFactory' => static function ( MediaWikiServices $services ): SerializerFactory { return new SerializerFactory( new DataValueSerializer(), SerializerFactory::OPTION_DEFAULT ); }, - 'WikibaseRepo.CachingCommonsMediaFileNameLookup' => function ( + 'WikibaseRepo.CachingCommonsMediaFileNameLookup' => static function ( MediaWikiServices $services ): CachingCommonsMediaFileNameLookup { return new CachingCommonsMediaFileNameLookup( @@ -348,11 +348,11 @@ return [ ); }, - 'WikibaseRepo.ChangeHolder' => function ( MediaWikiServices $services ): ChangeHolder { + 'WikibaseRepo.ChangeHolder' => static function ( MediaWikiServices $services ): ChangeHolder { return new ChangeHolder(); }, - 'WikibaseRepo.ChangeNotifier' => function ( MediaWikiServices $services ): ChangeNotifier { + 'WikibaseRepo.ChangeNotifier' => static function ( MediaWikiServices $services ): ChangeNotifier { $transmitters = [ new HookChangeTransmitter( $services->getHookContainer(), @@ -374,7 +374,7 @@ return [ ); }, - 'WikibaseRepo.ChangeOpDeserializerFactory' => function ( MediaWikiServices $services ): ChangeOpDeserializerFactory { + 'WikibaseRepo.ChangeOpDeserializerFactory' => static function ( MediaWikiServices $services ): ChangeOpDeserializerFactory { $changeOpFactoryProvider = WikibaseRepo::getChangeOpFactoryProvider( $services ); $settings = WikibaseRepo::getSettings( $services ); @@ -394,7 +394,7 @@ return [ ); }, - 'WikibaseRepo.ChangeOpFactoryProvider' => function ( MediaWikiServices $services ): ChangeOpFactoryProvider { + 'WikibaseRepo.ChangeOpFactoryProvider' => static function ( MediaWikiServices $services ): ChangeOpFactoryProvider { $snakValidator = new SnakValidator( WikibaseRepo::getPropertyDataTypeLookup( $services ), WikibaseRepo::getDataTypeFactory( $services ), @@ -418,14 +418,14 @@ return [ ); }, - 'WikibaseRepo.CommonsMediaValueNormalizer' => function ( MediaWikiServices $services ): CommonsMediaValueNormalizer { + 'WikibaseRepo.CommonsMediaValueNormalizer' => static function ( MediaWikiServices $services ): CommonsMediaValueNormalizer { return new CommonsMediaValueNormalizer( WikibaseRepo::getCachingCommonsMediaFileNameLookup( $services ), WikibaseRepo::getLogger( $services ) ); }, - 'WikibaseRepo.CompactBaseDataModelSerializerFactory' => function ( MediaWikiServices $services ): SerializerFactory { + 'WikibaseRepo.CompactBaseDataModelSerializerFactory' => static function ( MediaWikiServices $services ): SerializerFactory { return new SerializerFactory( new DataValueSerializer(), SerializerFactory::OPTION_SERIALIZE_MAIN_SNAKS_WITHOUT_HASH + @@ -434,7 +434,7 @@ return [ ); }, - 'WikibaseRepo.CompactEntitySerializer' => function ( MediaWikiServices $services ): Serializer { + 'WikibaseRepo.CompactEntitySerializer' => static function ( MediaWikiServices $services ): Serializer { $serializerFactoryCallbacks = WikibaseRepo::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::SERIALIZER_FACTORY_CALLBACK ); $baseSerializerFactory = WikibaseRepo::getCompactBaseDataModelSerializerFactory( $services ); @@ -447,7 +447,7 @@ return [ return new DispatchingSerializer( $serializers ); }, - 'WikibaseRepo.ContentModelMappings' => function ( MediaWikiServices $services ): array { + 'WikibaseRepo.ContentModelMappings' => static function ( MediaWikiServices $services ): array { $map = WikibaseRepo::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::CONTENT_MODEL_ID ); @@ -457,20 +457,20 @@ return [ return $map; }, - 'WikibaseRepo.DataAccessSettings' => function ( MediaWikiServices $services ): DataAccessSettings { + 'WikibaseRepo.DataAccessSettings' => static function ( MediaWikiServices $services ): DataAccessSettings { return new DataAccessSettings( WikibaseRepo::getSettings( $services )->getSetting( 'maxSerializedEntitySize' ) ); }, - 'WikibaseRepo.DatabaseTypeIdsStore' => function ( MediaWikiServices $services ): DatabaseTypeIdsStore { + 'WikibaseRepo.DatabaseTypeIdsStore' => static function ( MediaWikiServices $services ): DatabaseTypeIdsStore { return new DatabaseTypeIdsStore( WikibaseRepo::getRepoDomainDbFactory( $services )->newRepoDb(), $services->getMainWANObjectCache() ); }, - 'WikibaseRepo.DataTypeDefinitions' => function ( MediaWikiServices $services ): DataTypeDefinitions { + 'WikibaseRepo.DataTypeDefinitions' => static function ( MediaWikiServices $services ): DataTypeDefinitions { $baseDataTypes = require __DIR__ . '/../lib/WikibaseLib.datatypes.php'; $repoDataTypes = require __DIR__ . '/WikibaseRepo.datatypes.php'; @@ -489,30 +489,30 @@ return [ ); }, - 'WikibaseRepo.DataTypeFactory' => function ( MediaWikiServices $services ): DataTypeFactory { + 'WikibaseRepo.DataTypeFactory' => static function ( MediaWikiServices $services ): DataTypeFactory { return new DataTypeFactory( WikibaseRepo::getDataTypeDefinitions( $services )->getValueTypes() ); }, - 'WikibaseRepo.DataTypeValidatorFactory' => function ( MediaWikiServices $services ): DataTypeValidatorFactory { + 'WikibaseRepo.DataTypeValidatorFactory' => static function ( MediaWikiServices $services ): DataTypeValidatorFactory { return new BuilderBasedDataTypeValidatorFactory( WikibaseRepo::getDataTypeDefinitions( $services )->getValidatorFactoryCallbacks() ); }, - 'WikibaseRepo.DataValueDeserializer' => function ( MediaWikiServices $services ): DataValueDeserializer { + 'WikibaseRepo.DataValueDeserializer' => static function ( MediaWikiServices $services ): DataValueDeserializer { return new DataValueDeserializer( array_merge( WikibaseRepo::getDataTypeDefinitions( $services )->getDataValueDeserializerBuilders(), [ 'unknown' => UnknownValue::class ] ) ); }, - 'WikibaseRepo.DataValueFactory' => function ( MediaWikiServices $services ): DataValueFactory { + 'WikibaseRepo.DataValueFactory' => static function ( MediaWikiServices $services ): DataValueFactory { return new DataValueFactory( WikibaseRepo::getDataValueDeserializer( $services ) ); }, - 'WikibaseRepo.DefaultSnakFormatterBuilders' => function ( MediaWikiServices $services ): WikibaseSnakFormatterBuilders { + 'WikibaseRepo.DefaultSnakFormatterBuilders' => static function ( MediaWikiServices $services ): WikibaseSnakFormatterBuilders { return new WikibaseSnakFormatterBuilders( WikibaseRepo::getDefaultValueFormatterBuilders( $services ), WikibaseRepo::getPropertyInfoLookup( $services ), @@ -527,7 +527,7 @@ return [ * @warning This is for use with {@link WikibaseRepo::getDefaultValidatorBuilders()} during bootstrap only! * Program logic should use {@link WikibaseRepo::getDataTypeValidatorFactory()} instead! */ - 'WikibaseRepo.DefaultValidatorBuilders' => function ( MediaWikiServices $services ): ValidatorBuilders { + 'WikibaseRepo.DefaultValidatorBuilders' => static function ( MediaWikiServices $services ): ValidatorBuilders { $settings = WikibaseRepo::getSettings( $services ); return new ValidatorBuilders( @@ -549,7 +549,7 @@ return [ * @warning This is for use with {@link WikibaseRepo::getDefaultValueFormatterBuilders()} during bootstrap only! * Program logic should use {@link WikibaseRepo::getSnakFormatterFactory()} instead! */ - 'WikibaseRepo.DefaultValueFormatterBuilders' => function ( + 'WikibaseRepo.DefaultValueFormatterBuilders' => static function ( MediaWikiServices $services ): WikibaseValueFormatterBuilders { $settings = WikibaseRepo::getSettings( $services ); @@ -581,13 +581,13 @@ return [ ); }, - 'WikibaseRepo.DispatchStats' => function ( MediaWikiServices $services ): DispatchStats { + 'WikibaseRepo.DispatchStats' => static function ( MediaWikiServices $services ): DispatchStats { return new DispatchStats( WikibaseRepo::getRepoDomainDbFactory( $services )->newRepoDb() ); }, - 'WikibaseRepo.EditEntityFactory' => function ( MediaWikiServices $services ): MediaWikiEditEntityFactory { + 'WikibaseRepo.EditEntityFactory' => static function ( MediaWikiServices $services ): MediaWikiEditEntityFactory { return new MediaWikiEditEntityFactory( WikibaseRepo::getEntityTitleStoreLookup( $services ), WikibaseRepo::getStore( $services ) @@ -605,7 +605,7 @@ return [ ); }, - 'WikibaseRepo.EditFilterHookRunner' => function ( MediaWikiServices $services ): EditFilterHookRunner { + 'WikibaseRepo.EditFilterHookRunner' => static function ( MediaWikiServices $services ): EditFilterHookRunner { return new MediaWikiEditFilterHookRunner( WikibaseRepo::getEntityNamespaceLookup( $services ), WikibaseRepo::getEntityTitleStoreLookup( $services ), @@ -614,18 +614,18 @@ return [ ); }, - 'WikibaseRepo.EnabledEntityTypes' => function ( MediaWikiServices $services ): array { + 'WikibaseRepo.EnabledEntityTypes' => static function ( MediaWikiServices $services ): array { return array_keys( WikibaseRepo::getEntitySourceDefinitions( $services ) ->getEntityTypeToDatabaseSourceMapping() ); }, - 'WikibaseRepo.EnabledEntityTypesForSearch' => function ( MediaWikiServices $services ): array { + 'WikibaseRepo.EnabledEntityTypesForSearch' => static function ( MediaWikiServices $services ): array { return array_keys( WikibaseRepo::getEntitySearchHelperCallbacks( $services ) ); }, - 'WikibaseRepo.EntityArticleIdLookup' => function ( MediaWikiServices $services ): EntityArticleIdLookup { + 'WikibaseRepo.EntityArticleIdLookup' => static function ( MediaWikiServices $services ): EntityArticleIdLookup { $callbacks = WikibaseRepo::getEntitySourceAndTypeDefinitions( $services )->getServiceBySourceAndType( EntityTypeDefinitions::ARTICLE_ID_LOOKUP_CALLBACK ); @@ -639,7 +639,7 @@ return [ ); }, - 'WikibaseRepo.EntityChangeFactory' => function ( MediaWikiServices $services ): EntityChangeFactory { + 'WikibaseRepo.EntityChangeFactory' => static function ( MediaWikiServices $services ): EntityChangeFactory { //TODO: take this from a setting or registry. $changeClasses = [ Item::ENTITY_TYPE => ItemChange::class, @@ -655,7 +655,7 @@ return [ ); }, - 'WikibaseRepo.EntityChangeLookup' => function ( MediaWikiServices $services ): EntityChangeLookup { + 'WikibaseRepo.EntityChangeLookup' => static function ( MediaWikiServices $services ): EntityChangeLookup { return new EntityChangeLookup( WikibaseRepo::getEntityChangeFactory( $services ), WikibaseRepo::getEntityIdParser( $services ), @@ -663,14 +663,14 @@ return [ ); }, - 'WikibaseRepo.EntityChangeOpProvider' => function ( MediaWikiServices $services ): EntityChangeOpProvider { + 'WikibaseRepo.EntityChangeOpProvider' => static function ( MediaWikiServices $services ): EntityChangeOpProvider { return new EntityChangeOpProvider( WikibaseRepo::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::CHANGEOP_DESERIALIZER_CALLBACK ) ); }, - 'WikibaseRepo.EntityConstraintProvider' => function ( MediaWikiServices $services ): EntityConstraintProvider { + 'WikibaseRepo.EntityConstraintProvider' => static function ( MediaWikiServices $services ): EntityConstraintProvider { return new EntityConstraintProvider( new CompositeSiteLinkConflictLookup( [ new SqlSiteLinkConflictLookup( @@ -684,7 +684,7 @@ return [ ); }, - 'WikibaseRepo.EntityContentDataCodec' => function ( MediaWikiServices $services ): EntityContentDataCodec { + 'WikibaseRepo.EntityContentDataCodec' => static function ( MediaWikiServices $services ): EntityContentDataCodec { return new EntityContentDataCodec( WikibaseRepo::getEntityIdParser( $services ), WikibaseRepo::getStorageEntitySerializer( $services ), @@ -694,7 +694,7 @@ return [ ); }, - 'WikibaseRepo.EntityContentFactory' => function ( MediaWikiServices $services ): EntityContentFactory { + 'WikibaseRepo.EntityContentFactory' => static function ( MediaWikiServices $services ): EntityContentFactory { return new EntityContentFactory( WikibaseRepo::getContentModelMappings( $services ), WikibaseRepo::getEntityTypeDefinitions( $services ) @@ -702,7 +702,7 @@ return [ ); }, - 'WikibaseRepo.EntityDataFormatProvider' => function ( MediaWikiServices $services ): EntityDataFormatProvider { + 'WikibaseRepo.EntityDataFormatProvider' => static function ( MediaWikiServices $services ): EntityDataFormatProvider { $formats = WikibaseRepo::getSettings( $services )->getSetting( 'entityDataFormats' ); $entityDataFormatProvider = new EntityDataFormatProvider(); @@ -711,7 +711,7 @@ return [ return $entityDataFormatProvider; }, - 'WikibaseRepo.EntityDataSerializationService' => function ( MediaWikiServices $services ): EntityDataSerializationService { + 'WikibaseRepo.EntityDataSerializationService' => static function ( MediaWikiServices $services ): EntityDataSerializationService { return new EntityDataSerializationService( WikibaseRepo::getEntityTitleStoreLookup( $services ), WikibaseRepo::getPropertyDataTypeLookup( $services ), @@ -724,7 +724,7 @@ return [ ); }, - 'WikibaseRepo.EntityDataUriManager' => function ( MediaWikiServices $services ): EntityDataUriManager { + 'WikibaseRepo.EntityDataUriManager' => static function ( MediaWikiServices $services ): EntityDataUriManager { $entityDataFormatProvider = WikibaseRepo::getEntityDataFormatProvider( $services ); // build a mapping of formats to file extensions and include HTML @@ -749,7 +749,7 @@ return [ ); }, - 'WikibaseRepo.EntityDiffer' => function ( MediaWikiServices $services ): EntityDiffer { + 'WikibaseRepo.EntityDiffer' => static function ( MediaWikiServices $services ): EntityDiffer { $entityDiffer = new EntityDiffer(); $entityTypeDefinitions = WikibaseRepo::getEntityTypeDefinitions( $services ); $builders = $entityTypeDefinitions->get( EntityTypeDefinitions::ENTITY_DIFFER_STRATEGY_BUILDER ); @@ -759,7 +759,7 @@ return [ return $entityDiffer; }, - 'WikibaseRepo.EntityDiffVisualizerFactory' => function ( MediaWikiServices $services ): EntityDiffVisualizerFactory{ + 'WikibaseRepo.EntityDiffVisualizerFactory' => static function ( MediaWikiServices $services ): EntityDiffVisualizerFactory{ return new EntityDiffVisualizerFactory( WikibaseRepo::getEntityTypeDefinitions( $services )->get( EntityTypeDefinitions::ENTITY_DIFF_VISUALIZER_CALLBACK ), new ClaimDiffer( new OrderedListDiffer( new ComparableComparer() ) ), @@ -769,7 +769,7 @@ return [ ); }, - 'WikibaseRepo.EntityExistenceChecker' => function ( MediaWikiServices $services ): EntityExistenceChecker { + 'WikibaseRepo.EntityExistenceChecker' => static function ( MediaWikiServices $services ): EntityExistenceChecker { return new SourceAndTypeDispatchingExistenceChecker( WikibaseRepo::getEntitySourceLookup( $services ), new ServiceBySourceAndTypeDispatcher( @@ -780,21 +780,21 @@ return [ ); }, - 'WikibaseRepo.EntityFactory' => function ( MediaWikiServices $services ): EntityFactory { + 'WikibaseRepo.EntityFactory' => static function ( MediaWikiServices $services ): EntityFactory { $instantiators = WikibaseRepo::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::ENTITY_FACTORY_CALLBACK ); return new EntityFactory( $instantiators ); }, - 'WikibaseRepo.EntityIdComposer' => function ( MediaWikiServices $services ): EntityIdComposer { + 'WikibaseRepo.EntityIdComposer' => static function ( MediaWikiServices $services ): EntityIdComposer { return new EntityIdComposer( WikibaseRepo::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::ENTITY_ID_COMPOSER_CALLBACK ) ); }, - 'WikibaseRepo.EntityIdHtmlLinkFormatterFactory' => function ( + 'WikibaseRepo.EntityIdHtmlLinkFormatterFactory' => static function ( MediaWikiServices $services ): EntityIdFormatterFactory { $factory = new EntityIdHtmlLinkFormatterFactory( @@ -811,7 +811,7 @@ return [ : $factory; }, - 'WikibaseRepo.EntityIdLabelFormatterFactory' => function ( + 'WikibaseRepo.EntityIdLabelFormatterFactory' => static function ( MediaWikiServices $services ): EntityIdLabelFormatterFactory { return new EntityIdLabelFormatterFactory( @@ -819,14 +819,14 @@ return [ ); }, - 'WikibaseRepo.EntityIdLookup' => function ( MediaWikiServices $services ): EntityIdLookup { + 'WikibaseRepo.EntityIdLookup' => static function ( MediaWikiServices $services ): EntityIdLookup { return new ContentHandlerEntityIdLookup( WikibaseRepo::getEntityContentFactory( $services ), $services->getHookContainer() ); }, - 'WikibaseRepo.EntityIdParser' => function ( MediaWikiServices $services ): EntityIdParser { + 'WikibaseRepo.EntityIdParser' => static function ( MediaWikiServices $services ): EntityIdParser { $settings = WikibaseRepo::getSettings( $services ); $dispatchingEntityIdParser = new DispatchingEntityIdParser( WikibaseRepo::getEntityTypeDefinitions( $services )->getEntityIdBuilders() @@ -844,7 +844,7 @@ return [ return $dispatchingEntityIdParser; }, - 'WikibaseRepo.EntityLinkFormatterFactory' => function ( MediaWikiServices $services ): EntityLinkFormatterFactory { + 'WikibaseRepo.EntityLinkFormatterFactory' => static function ( MediaWikiServices $services ): EntityLinkFormatterFactory { return new EntityLinkFormatterFactory( WikibaseRepo::getEntityTitleTextLookup( $services ), $services->getLanguageFactory(), @@ -852,7 +852,7 @@ return [ ); }, - 'WikibaseRepo.EntityLookup' => function ( MediaWikiServices $services ): EntityLookup { + 'WikibaseRepo.EntityLookup' => static function ( MediaWikiServices $services ): EntityLookup { return WikibaseRepo::getStore( $services ) ->getEntityLookup( Store::LOOKUP_CACHING_ENABLED, @@ -860,7 +860,7 @@ return [ ); }, - 'WikibaseRepo.EntityMetaTagsCreatorFactory' => function ( + 'WikibaseRepo.EntityMetaTagsCreatorFactory' => static function ( MediaWikiServices $services ): DispatchingEntityMetaTagsCreatorFactory { return new DispatchingEntityMetaTagsCreatorFactory( @@ -869,17 +869,17 @@ return [ ); }, - 'WikibaseRepo.EntityNamespaceLookup' => function ( MediaWikiServices $services ): EntityNamespaceLookup { + 'WikibaseRepo.EntityNamespaceLookup' => static function ( MediaWikiServices $services ): EntityNamespaceLookup { $entitySources = array_filter( WikibaseRepo::getEntitySourceDefinitions( $services )->getSources(), - function ( EntitySource $entitySource ) { + static function ( EntitySource $entitySource ) { return $entitySource->getType() === DatabaseEntitySource::TYPE; } ); return array_reduce( $entitySources, - function ( EntityNamespaceLookup $nsLookup, DatabaseEntitySource $source ): EntityNamespaceLookup { + static function ( EntityNamespaceLookup $nsLookup, DatabaseEntitySource $source ): EntityNamespaceLookup { return $nsLookup->merge( new EntityNamespaceLookup( $source->getEntityNamespaceIds(), $source->getEntitySlotNames() @@ -889,7 +889,7 @@ return [ ); }, - 'WikibaseRepo.EntityParserOutputGeneratorFactory' => function ( MediaWikiServices $services ): EntityParserOutputGeneratorFactory { + 'WikibaseRepo.EntityParserOutputGeneratorFactory' => static function ( MediaWikiServices $services ): EntityParserOutputGeneratorFactory { $settings = WikibaseRepo::getSettings( $services ); return new EntityParserOutputGeneratorFactory( @@ -922,7 +922,7 @@ return [ ); }, - 'WikibaseRepo.EntityPatcher' => function ( MediaWikiServices $services ): EntityPatcher { + 'WikibaseRepo.EntityPatcher' => static function ( MediaWikiServices $services ): EntityPatcher { $entityPatcher = new EntityPatcher(); $entityTypeDefinitions = WikibaseRepo::getEntityTypeDefinitions( $services ); $builders = $entityTypeDefinitions->get( EntityTypeDefinitions::ENTITY_PATCHER_STRATEGY_BUILDER ); @@ -932,7 +932,7 @@ return [ return $entityPatcher; }, - 'WikibaseRepo.EntityPermissionChecker' => function ( MediaWikiServices $services ): EntityPermissionChecker { + 'WikibaseRepo.EntityPermissionChecker' => static function ( MediaWikiServices $services ): EntityPermissionChecker { return new WikiPageEntityStorePermissionChecker( WikibaseRepo::getEntityNamespaceLookup( $services ), WikibaseRepo::getEntityTitleLookup( $services ), @@ -941,7 +941,7 @@ return [ ); }, - 'WikibaseRepo.EntityRdfBuilderFactory' => function ( MediaWikiServices $services ): EntityRdfBuilderFactory { + 'WikibaseRepo.EntityRdfBuilderFactory' => static function ( MediaWikiServices $services ): EntityRdfBuilderFactory { $entityTypeDefinitions = WikibaseRepo::getEntityTypeDefinitions( $services ); return new EntityRdfBuilderFactory( @@ -949,7 +949,7 @@ return [ ); }, - 'WikibaseRepo.EntityRedirectChecker' => function ( MediaWikiServices $services ): EntityRedirectChecker { + 'WikibaseRepo.EntityRedirectChecker' => static function ( MediaWikiServices $services ): EntityRedirectChecker { return new SourceAndTypeDispatchingRedirectChecker( new ServiceBySourceAndTypeDispatcher( EntityRedirectChecker::class, @@ -960,12 +960,12 @@ return [ ); }, - 'WikibaseRepo.EntityRevisionLookup' => function ( MediaWikiServices $services ): EntityRevisionLookup { + 'WikibaseRepo.EntityRevisionLookup' => static function ( MediaWikiServices $services ): EntityRevisionLookup { return WikibaseRepo::getStore( $services ) ->getEntityRevisionLookup( Store::LOOKUP_CACHING_ENABLED ); }, - 'WikibaseRepo.EntitySearchHelper' => function ( MediaWikiServices $services ): EntitySearchHelper { + 'WikibaseRepo.EntitySearchHelper' => static function ( MediaWikiServices $services ): EntitySearchHelper { $entitySearchHelperCallbacks = WikibaseRepo::getEntitySearchHelperCallbacks( $services ); $typeDispatchingEntitySearchHelper = new TypeDispatchingEntitySearchHelper( @@ -986,7 +986,7 @@ return [ return $typeDispatchingEntitySearchHelper; }, - 'WikibaseRepo.EntitySearchHelperCallbacks' => function ( MediaWikiServices $services ): array { + 'WikibaseRepo.EntitySearchHelperCallbacks' => static function ( MediaWikiServices $services ): array { $callbacks = WikibaseRepo::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::ENTITY_SEARCH_CALLBACK ); @@ -995,7 +995,7 @@ return [ return $callbacks; }, - 'WikibaseRepo.EntitySourceAndTypeDefinitions' => function ( MediaWikiServices $services ): EntitySourceAndTypeDefinitions { + 'WikibaseRepo.EntitySourceAndTypeDefinitions' => static function ( MediaWikiServices $services ): EntitySourceAndTypeDefinitions { $baseEntityTypes = require __DIR__ . '/../lib/WikibaseLib.entitytypes.php'; $repoEntityTypes = require __DIR__ . '/WikibaseRepo.entitytypes.php'; @@ -1020,7 +1020,7 @@ return [ ); }, - 'WikibaseRepo.EntitySourceDefinitions' => function ( MediaWikiServices $services ): EntitySourceDefinitions { + 'WikibaseRepo.EntitySourceDefinitions' => static function ( MediaWikiServices $services ): EntitySourceDefinitions { $settings = WikibaseRepo::getSettings( $services ); $subEntityTypesMapper = WikibaseRepo::getSubEntityTypesMapper( $services ); @@ -1040,22 +1040,22 @@ return [ return $fedPropsSourceAdder->addDefaultIfRequired( $entitySourceDefinitions ); }, - 'WikibaseRepo.EntitySourceLookup' => function ( MediaWikiServices $services ): EntitySourceLookup { + 'WikibaseRepo.EntitySourceLookup' => static function ( MediaWikiServices $services ): EntitySourceLookup { return new EntitySourceLookup( WikibaseRepo::getEntitySourceDefinitions( $services ), WikibaseRepo::getSubEntityTypesMapper( $services ) ); }, - 'WikibaseRepo.EntityStore' => function ( MediaWikiServices $services ): EntityStore { + 'WikibaseRepo.EntityStore' => static function ( MediaWikiServices $services ): EntityStore { return WikibaseRepo::getStore( $services )->getEntityStore(); }, - 'WikibaseRepo.EntityStoreWatcher' => function ( MediaWikiServices $services ): EntityStoreWatcher { + 'WikibaseRepo.EntityStoreWatcher' => static function ( MediaWikiServices $services ): EntityStoreWatcher { return WikibaseRepo::getStore( $services )->getEntityStoreWatcher(); }, - 'WikibaseRepo.EntityStubRdfBuilderFactory' => function ( MediaWikiServices $services ): EntityStubRdfBuilderFactory { + 'WikibaseRepo.EntityStubRdfBuilderFactory' => static function ( MediaWikiServices $services ): EntityStubRdfBuilderFactory { $entityTypeDefinitions = WikibaseRepo::getEntityTypeDefinitions( $services ); return new EntityStubRdfBuilderFactory( @@ -1063,11 +1063,11 @@ return [ ); }, - 'WikibaseRepo.EntityTitleLookup' => function ( MediaWikiServices $services ): EntityTitleLookup { + 'WikibaseRepo.EntityTitleLookup' => static function ( MediaWikiServices $services ): EntityTitleLookup { return WikibaseRepo::getEntityTitleStoreLookup( $services ); }, - 'WikibaseRepo.EntityTitleStoreLookup' => function ( MediaWikiServices $services ): EntityTitleStoreLookup { + 'WikibaseRepo.EntityTitleStoreLookup' => static function ( MediaWikiServices $services ): EntityTitleStoreLookup { return new TypeDispatchingEntityTitleStoreLookup( WikibaseRepo::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::ENTITY_TITLE_STORE_LOOKUP_FACTORY_CALLBACK ), @@ -1080,7 +1080,7 @@ return [ ); }, - 'WikibaseRepo.EntityTitleTextLookup' => function ( MediaWikiServices $services ): EntityTitleTextLookup { + 'WikibaseRepo.EntityTitleTextLookup' => static function ( MediaWikiServices $services ): EntityTitleTextLookup { return new SourceAndTypeDispatchingTitleTextLookup( WikibaseRepo::getEntitySourceLookup( $services ), new ServiceBySourceAndTypeDispatcher( @@ -1091,7 +1091,7 @@ return [ ); }, - 'WikibaseRepo.EntityTypeDefinitions' => function ( MediaWikiServices $services ): EntityTypeDefinitions { + 'WikibaseRepo.EntityTypeDefinitions' => static function ( MediaWikiServices $services ): EntityTypeDefinitions { $baseEntityTypes = require __DIR__ . '/../lib/WikibaseLib.entitytypes.php'; $repoEntityTypes = require __DIR__ . '/WikibaseRepo.entitytypes.php'; @@ -1105,7 +1105,7 @@ return [ return new EntityTypeDefinitions( $entityTypes ); }, - 'WikibaseRepo.EntityTypesConfigValue' => function ( MediaWikiServices $services ): array { + 'WikibaseRepo.EntityTypesConfigValue' => static function ( MediaWikiServices $services ): array { $entityTypeDefinitions = WikibaseRepo::getEntityTypeDefinitions( $services ); return [ 'types' => $entityTypeDefinitions->getEntityTypes(), @@ -1114,7 +1114,7 @@ return [ ]; }, - 'WikibaseRepo.EntityUrlLookup' => function ( MediaWikiServices $services ): EntityUrlLookup { + 'WikibaseRepo.EntityUrlLookup' => static function ( MediaWikiServices $services ): EntityUrlLookup { return new SourceAndTypeDispatchingUrlLookup( new ServiceBySourceAndTypeDispatcher( EntityUrlLookup::class, @@ -1125,13 +1125,13 @@ return [ ); }, - 'WikibaseRepo.EntityViewFactory' => function ( MediaWikiServices $services ): DispatchingEntityViewFactory { + 'WikibaseRepo.EntityViewFactory' => static function ( MediaWikiServices $services ): DispatchingEntityViewFactory { return new DispatchingEntityViewFactory( WikibaseRepo::getEntityTypeDefinitions( $services )->get( EntityTypeDefinitions::VIEW_FACTORY_CALLBACK ) ); }, - 'WikibaseRepo.ExceptionLocalizer' => function ( MediaWikiServices $services ): ExceptionLocalizer { + 'WikibaseRepo.ExceptionLocalizer' => static function ( MediaWikiServices $services ): ExceptionLocalizer { $formatter = WikibaseRepo::getMessageParameterFormatter( $services ); return new DispatchingExceptionLocalizer( [ @@ -1144,11 +1144,11 @@ return [ ] ); }, - 'WikibaseRepo.ExternalFormatStatementDeserializer' => function ( MediaWikiServices $services ): Deserializer { + 'WikibaseRepo.ExternalFormatStatementDeserializer' => static function ( MediaWikiServices $services ): Deserializer { return WikibaseRepo::getBaseDataModelDeserializerFactory( $services )->newStatementDeserializer(); }, - 'WikibaseRepo.FallbackLabelDescriptionLookupFactory' => function ( + 'WikibaseRepo.FallbackLabelDescriptionLookupFactory' => static function ( MediaWikiServices $services ): FallbackLabelDescriptionLookupFactory { return new FallbackLabelDescriptionLookupFactory( @@ -1160,7 +1160,7 @@ return [ ); }, - 'WikibaseRepo.FederatedPropertiesServiceFactory' => function ( MediaWikiServices $services ): ApiServiceFactory { + 'WikibaseRepo.FederatedPropertiesServiceFactory' => static function ( MediaWikiServices $services ): ApiServiceFactory { $settings = WikibaseRepo::getSettings( $services ); if ( @@ -1184,7 +1184,7 @@ return [ ); }, - 'WikibaseRepo.FieldDefinitionsFactory' => function ( MediaWikiServices $services ): FieldDefinitionsFactory { + 'WikibaseRepo.FieldDefinitionsFactory' => static function ( MediaWikiServices $services ): FieldDefinitionsFactory { return new FieldDefinitionsFactory( WikibaseRepo::getEntityTypeDefinitions( $services ), WikibaseRepo::getTermsLanguages( $services ), @@ -1192,16 +1192,16 @@ return [ ); }, - 'WikibaseRepo.FulltextSearchTypes' => function ( MediaWikiServices $services ): array { + 'WikibaseRepo.FulltextSearchTypes' => static function ( MediaWikiServices $services ): array { $searchTypeContexts = WikibaseRepo::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::FULLTEXT_SEARCH_CONTEXT ); - return array_map( function ( $context ): string { + return array_map( static function ( $context ): string { return is_callable( $context ) ? $context() : $context; }, $searchTypeContexts ); }, - 'WikibaseRepo.IdGenerator' => function ( MediaWikiServices $services ): IdGenerator { + 'WikibaseRepo.IdGenerator' => static function ( MediaWikiServices $services ): IdGenerator { $settings = WikibaseRepo::getSettings( $services ); $idGeneratorSetting = $settings->getSetting( 'idGenerator' ); $db = WikibaseRepo::getRepoDomainDbFactory( $services )->newRepoDb(); @@ -1246,7 +1246,7 @@ return [ ); }, - 'WikibaseRepo.InternalFormatDeserializerFactory' => function ( MediaWikiServices $services ): InternalDeserializerFactory { + 'WikibaseRepo.InternalFormatDeserializerFactory' => static function ( MediaWikiServices $services ): InternalDeserializerFactory { return new InternalDeserializerFactory( WikibaseRepo::getDataValueDeserializer( $services ), WikibaseRepo::getEntityIdParser( $services ), @@ -1255,18 +1255,18 @@ return [ ); }, - 'WikibaseRepo.InternalFormatEntityDeserializer' => function ( MediaWikiServices $services ): Deserializer { + 'WikibaseRepo.InternalFormatEntityDeserializer' => static function ( MediaWikiServices $services ): Deserializer { return WikibaseRepo::getInternalFormatDeserializerFactory( $services )->newEntityDeserializer(); }, - 'WikibaseRepo.ItemDisambiguationFactory' => function ( MediaWikiServices $services ): ItemDisambiguationFactory { + 'WikibaseRepo.ItemDisambiguationFactory' => static function ( MediaWikiServices $services ): ItemDisambiguationFactory { return new ItemDisambiguationFactory( WikibaseRepo::getEntityTitleLookup( $services ), WikibaseRepo::getLanguageNameLookupFactory( $services ) ); }, - 'WikibaseRepo.ItemHandler' => function ( MediaWikiServices $services ): ItemHandler { + 'WikibaseRepo.ItemHandler' => static function ( MediaWikiServices $services ): ItemHandler { return new ItemHandler( WikibaseRepo::getItemTermStoreWriter( $services ), WikibaseRepo::getEntityContentDataCodec( $services ), @@ -1287,7 +1287,7 @@ return [ ); }, - 'WikibaseRepo.ItemMergeInteractor' => function ( MediaWikiServices $services ): ItemMergeInteractor { + 'WikibaseRepo.ItemMergeInteractor' => static function ( MediaWikiServices $services ): ItemMergeInteractor { return new ItemMergeInteractor( WikibaseRepo::getChangeOpFactoryProvider( $services ) ->getMergeFactory(), @@ -1302,7 +1302,7 @@ return [ ); }, - 'WikibaseRepo.ItemRedirectCreationInteractor' => function ( + 'WikibaseRepo.ItemRedirectCreationInteractor' => static function ( MediaWikiServices $services ): ItemRedirectCreationInteractor { $store = WikibaseRepo::getStore( $services ); @@ -1319,12 +1319,12 @@ return [ ); }, - 'WikibaseRepo.ItemTermsCollisionDetector' => function ( MediaWikiServices $services ): TermsCollisionDetector { + 'WikibaseRepo.ItemTermsCollisionDetector' => static function ( MediaWikiServices $services ): TermsCollisionDetector { return WikibaseRepo::getTermsCollisionDetectorFactory( $services ) ->getTermsCollisionDetector( Item::ENTITY_TYPE ); }, - 'WikibaseRepo.ItemTermStoreWriter' => function ( MediaWikiServices $services ): EntityTermStoreWriter { + 'WikibaseRepo.ItemTermStoreWriter' => static function ( MediaWikiServices $services ): EntityTermStoreWriter { if ( !in_array( Item::ENTITY_TYPE, WikibaseRepo::getLocalEntitySource( $services )->getEntityTypes() @@ -1337,14 +1337,14 @@ return [ ); }, - 'WikibaseRepo.ItemUrlParser' => function ( MediaWikiServices $services ): SuffixEntityIdParser { + 'WikibaseRepo.ItemUrlParser' => static function ( MediaWikiServices $services ): SuffixEntityIdParser { return new SuffixEntityIdParser( WikibaseRepo::getItemVocabularyBaseUri( $services ), new ItemIdParser() ); }, - 'WikibaseRepo.ItemVocabularyBaseUri' => function ( MediaWikiServices $services ): string { + 'WikibaseRepo.ItemVocabularyBaseUri' => static function ( MediaWikiServices $services ): string { $itemSource = WikibaseRepo::getEntitySourceDefinitions( $services ) ->getDatabaseSourceForEntityType( Item::ENTITY_TYPE ); @@ -1355,7 +1355,7 @@ return [ return $itemSource->getConceptBaseUri(); }, - 'WikibaseRepo.KartographerEmbeddingHandler' => function ( MediaWikiServices $services ): ?CachingKartographerEmbeddingHandler { + 'WikibaseRepo.KartographerEmbeddingHandler' => static function ( MediaWikiServices $services ): ?CachingKartographerEmbeddingHandler { $settings = WikibaseRepo::getSettings( $services ); if ( @@ -1370,14 +1370,14 @@ return [ } }, - 'WikibaseRepo.LanguageDirectionalityLookup' => function ( MediaWikiServices $services ): LanguageDirectionalityLookup { + 'WikibaseRepo.LanguageDirectionalityLookup' => static function ( MediaWikiServices $services ): LanguageDirectionalityLookup { return new MediaWikiLanguageDirectionalityLookup( $services->getLanguageFactory(), $services->getLanguageNameUtils() ); }, - 'WikibaseRepo.LanguageFallbackChainFactory' => function ( MediaWikiServices $services ): LanguageFallbackChainFactory { + 'WikibaseRepo.LanguageFallbackChainFactory' => static function ( MediaWikiServices $services ): LanguageFallbackChainFactory { return new LanguageFallbackChainFactory( WikibaseRepo::getTermsLanguages( $services ), $services->getLanguageFactory(), @@ -1386,14 +1386,14 @@ return [ ); }, - 'WikibaseRepo.LanguageNameLookupFactory' => function ( MediaWikiServices $services ): LanguageNameLookupFactory { + 'WikibaseRepo.LanguageNameLookupFactory' => static function ( MediaWikiServices $services ): LanguageNameLookupFactory { return new LanguageNameLookupFactory( $services->getLanguageNameUtils(), WikibaseRepo::getMessageInLanguageProvider( $services ) ); }, - 'WikibaseRepo.LegacyFormatDetectorCallback' => function ( MediaWikiServices $services ): ?callable { + 'WikibaseRepo.LegacyFormatDetectorCallback' => static function ( MediaWikiServices $services ): ?callable { $transformOnExport = WikibaseRepo::getSettings( $services ) ->getSetting( 'transformLegacyFormatOnExport' ); @@ -1419,14 +1419,14 @@ return [ * * @return bool True if $blob seems to be using a legacy serialization format. */ - return function ( $blob, $format ) { + return static function ( $blob, $format ) { // The legacy serialization uses something like "entity":["item",21] or // even "entity":"p21" for the entity ID. return preg_match( '/"entity"\s*:/', $blob ) > 0; }; }, - 'WikibaseRepo.LinkTargetEntityIdLookup' => function ( MediaWikiServices $services ): LinkTargetEntityIdLookup { + 'WikibaseRepo.LinkTargetEntityIdLookup' => static function ( MediaWikiServices $services ): LinkTargetEntityIdLookup { return new EntityLinkTargetEntityIdLookup( WikibaseRepo::getEntityNamespaceLookup( $services ), WikibaseRepo::getEntityIdParser( $services ), @@ -1435,7 +1435,7 @@ return [ ); }, - 'WikibaseRepo.LocalEntityNamespaceLookup' => function ( MediaWikiServices $services ): EntityNamespaceLookup { + 'WikibaseRepo.LocalEntityNamespaceLookup' => static function ( MediaWikiServices $services ): EntityNamespaceLookup { $localEntitySource = WikibaseRepo::getLocalEntitySource( $services ); $nsIds = $localEntitySource->getEntityNamespaceIds(); $entitySlots = $localEntitySource->getEntitySlotNames(); @@ -1443,7 +1443,7 @@ return [ return new EntityNamespaceLookup( $nsIds, $entitySlots ); }, - 'WikibaseRepo.LocalEntitySource' => function ( MediaWikiServices $services ): EntitySource { + 'WikibaseRepo.LocalEntitySource' => static function ( MediaWikiServices $services ): EntitySource { $localEntitySourceName = WikibaseRepo::getSettings( $services )->getSetting( 'localEntitySourceName' ); $sources = WikibaseRepo::getEntitySourceDefinitions( $services )->getSources(); foreach ( $sources as $source ) { @@ -1455,7 +1455,7 @@ return [ throw new LogicException( 'No source configured: ' . $localEntitySourceName ); }, - 'WikibaseRepo.LocalEntityTypes' => function ( MediaWikiServices $services ): array { + 'WikibaseRepo.LocalEntityTypes' => static function ( MediaWikiServices $services ): array { $localSource = WikibaseRepo::getLocalEntitySource( $services ); $subEntityTypes = WikibaseRepo::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::SUB_ENTITY_TYPES ); @@ -1463,7 +1463,7 @@ return [ // Expands the array of local entity types with sub types return array_reduce( $localSource->getEntityTypes(), - function ( $types, $localTypeName ) use ( $subEntityTypes ) { + static function ( $types, $localTypeName ) use ( $subEntityTypes ) { $types[] = $localTypeName; if ( array_key_exists( $localTypeName, $subEntityTypes ) ) { $types = array_merge( $types, $subEntityTypes[$localTypeName] ); @@ -1474,7 +1474,7 @@ return [ ); }, - 'WikibaseRepo.LocalizedTextProviderFactory' => function ( + 'WikibaseRepo.LocalizedTextProviderFactory' => static function ( MediaWikiServices $services ): LocalizedTextProviderFactory { return new LocalizedTextProviderFactory( @@ -1482,7 +1482,7 @@ return [ ); }, - 'WikibaseRepo.LocalRepoWikiPageMetaDataAccessor' => function ( MediaWikiServices $services ): WikiPageEntityMetaDataAccessor { + 'WikibaseRepo.LocalRepoWikiPageMetaDataAccessor' => static function ( MediaWikiServices $services ): WikiPageEntityMetaDataAccessor { $entityNamespaceLookup = WikibaseRepo::getEntityNamespaceLookup( $services ); $repoName = ''; // Empty string here means this only works for the local repo $dbName = false; // false means the local database @@ -1510,11 +1510,11 @@ return [ ); }, - 'WikibaseRepo.Logger' => function ( MediaWikiServices $services ): LoggerInterface { + 'WikibaseRepo.Logger' => static function ( MediaWikiServices $services ): LoggerInterface { return LoggerFactory::getInstance( 'Wikibase' ); }, - 'WikibaseRepo.MatchingTermsLookupFactory' => function ( MediaWikiServices $services ): MatchingTermsLookupFactory { + 'WikibaseRepo.MatchingTermsLookupFactory' => static function ( MediaWikiServices $services ): MatchingTermsLookupFactory { return new MatchingTermsLookupFactory( WikibaseRepo::getEntityIdComposer( $services ), WikibaseRepo::getRepoDomainDbFactory( $services ), @@ -1523,11 +1523,11 @@ return [ ); }, - 'WikibaseRepo.MessageInLanguageProvider' => function ( MediaWikiServices $services ): MessageInLanguageProvider { + 'WikibaseRepo.MessageInLanguageProvider' => static function ( MediaWikiServices $services ): MessageInLanguageProvider { return new MediaWikiMessageInLanguageProvider(); }, - 'WikibaseRepo.MessageParameterFormatter' => function ( MediaWikiServices $services ): ValueFormatter { + 'WikibaseRepo.MessageParameterFormatter' => static function ( MediaWikiServices $services ): ValueFormatter { $formatterOptions = new FormatterOptions(); $valueFormatterFactory = WikibaseRepo::getValueFormatterFactory( $services ); @@ -1539,7 +1539,7 @@ return [ ); }, - 'WikibaseRepo.MobileSite' => function ( MediaWikiServices $services ): bool { + 'WikibaseRepo.MobileSite' => static function ( MediaWikiServices $services ): bool { if ( $services->has( 'MobileFrontend.Context' ) ) { $mobileContext = $services->get( 'MobileFrontend.Context' ); return $mobileContext->shouldDisplayMobileView(); @@ -1547,18 +1547,18 @@ return [ return false; }, - 'WikibaseRepo.MonolingualTextLanguages' => function ( MediaWikiServices $services ): ContentLanguages { + 'WikibaseRepo.MonolingualTextLanguages' => static function ( MediaWikiServices $services ): ContentLanguages { return WikibaseRepo::getWikibaseContentLanguages( $services ) ->getContentLanguages( WikibaseContentLanguages::CONTEXT_MONOLINGUAL_TEXT ); }, - 'WikibaseRepo.NumberLocalizerFactory' => function ( MediaWikiServices $services ): NumberLocalizerFactory { + 'WikibaseRepo.NumberLocalizerFactory' => static function ( MediaWikiServices $services ): NumberLocalizerFactory { return new NumberLocalizerFactory( $services->getLanguageFactory() ); }, - 'WikibaseRepo.PrefetchingTermLookup' => function ( MediaWikiServices $services ): PrefetchingTermLookup { + 'WikibaseRepo.PrefetchingTermLookup' => static function ( MediaWikiServices $services ): PrefetchingTermLookup { return new SourceAndTypeDispatchingPrefetchingTermLookup( new ServiceBySourceAndTypeDispatcher( PrefetchingTermLookup::class, @@ -1569,7 +1569,7 @@ return [ ); }, - 'WikibaseRepo.PropertyDataTypeLookup' => function ( MediaWikiServices $services ): PropertyDataTypeLookup { + 'WikibaseRepo.PropertyDataTypeLookup' => static function ( MediaWikiServices $services ): PropertyDataTypeLookup { $entitySourceDefinitions = WikibaseRepo::getEntitySourceDefinitions( $services ); return new SourceDispatchingPropertyDataTypeLookup( @@ -1585,7 +1585,7 @@ return [ ); }, - 'WikibaseRepo.PropertyHandler' => function ( MediaWikiServices $services ): PropertyHandler { + 'WikibaseRepo.PropertyHandler' => static function ( MediaWikiServices $services ): PropertyHandler { return new PropertyHandler( WikibaseRepo::getPropertyTermStoreWriter( $services ), WikibaseRepo::getEntityContentDataCodec( $services ), @@ -1603,7 +1603,7 @@ return [ ); }, - 'WikibaseRepo.PropertyInfoBuilder' => function ( MediaWikiServices $services ): PropertyInfoBuilder { + 'WikibaseRepo.PropertyInfoBuilder' => static function ( MediaWikiServices $services ): PropertyInfoBuilder { $settings = WikibaseRepo::getSettings( $services ); $propertyIdMap = []; @@ -1622,7 +1622,7 @@ return [ return new PropertyInfoBuilder( $propertyIdMap ); }, - 'WikibaseRepo.PropertyInfoLookup' => function ( MediaWikiServices $services ): PropertyInfoLookup { + 'WikibaseRepo.PropertyInfoLookup' => static function ( MediaWikiServices $services ): PropertyInfoLookup { $repoSettings = WikibaseRepo::getSettings( $services ); $cacheKeyGroup = $repoSettings->getSetting( 'sharedCacheKeyGroup' ); $cacheDuration = $repoSettings->getSetting( 'sharedCacheDuration' ); @@ -1650,12 +1650,12 @@ return [ ); }, - 'WikibaseRepo.PropertyTermsCollisionDetector' => function ( MediaWikiServices $services ): TermsCollisionDetector { + 'WikibaseRepo.PropertyTermsCollisionDetector' => static function ( MediaWikiServices $services ): TermsCollisionDetector { return WikibaseRepo::getTermsCollisionDetectorFactory( $services ) ->getTermsCollisionDetector( Property::ENTITY_TYPE ); }, - 'WikibaseRepo.PropertyTermStoreWriter' => function ( MediaWikiServices $services ): EntityTermStoreWriter { + 'WikibaseRepo.PropertyTermStoreWriter' => static function ( MediaWikiServices $services ): EntityTermStoreWriter { if ( !in_array( Property::ENTITY_TYPE, WikibaseRepo::getLocalEntitySource( $services )->getEntityTypes() @@ -1668,11 +1668,11 @@ return [ ); }, - 'WikibaseRepo.PropertyValueExpertsModule' => function ( MediaWikiServices $services ): PropertyValueExpertsModule { + 'WikibaseRepo.PropertyValueExpertsModule' => static function ( MediaWikiServices $services ): PropertyValueExpertsModule { return new PropertyValueExpertsModule( WikibaseRepo::getDataTypeDefinitions( $services ) ); }, - 'WikibaseRepo.RdfBuilderFactory' => function ( MediaWikiServices $services ): RdfBuilderFactory { + 'WikibaseRepo.RdfBuilderFactory' => static function ( MediaWikiServices $services ): RdfBuilderFactory { return new RdfBuilderFactory( WikibaseRepo::getRdfVocabulary( $services ), WikibaseRepo::getEntityRdfBuilderFactory( $services ), @@ -1682,7 +1682,7 @@ return [ ); }, - 'WikibaseRepo.RdfVocabulary' => function ( MediaWikiServices $services ): RdfVocabulary { + 'WikibaseRepo.RdfVocabulary' => static function ( MediaWikiServices $services ): RdfVocabulary { $repoSettings = WikibaseRepo::getSettings( $services ); $languageCodes = array_merge( $services->getMainConfig()->get( 'DummyLanguageCodes' ), @@ -1709,17 +1709,17 @@ return [ ); }, - 'WikibaseRepo.RedirectResolvingLatestRevisionLookup' => function ( + 'WikibaseRepo.RedirectResolvingLatestRevisionLookup' => static function ( MediaWikiServices $services ): RedirectResolvingLatestRevisionLookup { return new RedirectResolvingLatestRevisionLookup( WikibaseRepo::getEntityRevisionLookup( $services ) ); }, - 'WikibaseRepo.ReferenceNormalizer' => function ( MediaWikiServices $services ): ReferenceNormalizer { + 'WikibaseRepo.ReferenceNormalizer' => static function ( MediaWikiServices $services ): ReferenceNormalizer { return new ReferenceNormalizer( WikibaseRepo::getSnakNormalizer( $services ) ); }, - 'WikibaseRepo.RepoDomainDbFactory' => function ( MediaWikiServices $services ): RepoDomainDbFactory { + 'WikibaseRepo.RepoDomainDbFactory' => static function ( MediaWikiServices $services ): RepoDomainDbFactory { $lbFactory = $services->getDBLoadBalancerFactory(); return new RepoDomainDbFactory( @@ -1729,11 +1729,11 @@ return [ ); }, - 'WikibaseRepo.Settings' => function ( MediaWikiServices $services ): SettingsArray { + 'WikibaseRepo.Settings' => static function ( MediaWikiServices $services ): SettingsArray { return WikibaseSettings::getRepoSettings(); }, - 'WikibaseRepo.SiteLinkBadgeChangeOpSerializationValidator' => function ( + 'WikibaseRepo.SiteLinkBadgeChangeOpSerializationValidator' => static function ( MediaWikiServices $services ): SiteLinkBadgeChangeOpSerializationValidator { return new SiteLinkBadgeChangeOpSerializationValidator( @@ -1745,7 +1745,7 @@ return [ ); }, - 'WikibaseRepo.SiteLinkGlobalIdentifiersProvider' => function ( + 'WikibaseRepo.SiteLinkGlobalIdentifiersProvider' => static function ( MediaWikiServices $services ): SiteLinkGlobalIdentifiersProvider { $cacheSecret = hash( 'sha256', $services->getMainConfig()->get( 'SecretKey' ) ); @@ -1759,7 +1759,7 @@ return [ ); }, - 'WikibaseRepo.SiteLinkPageNormalizer' => function ( + 'WikibaseRepo.SiteLinkPageNormalizer' => static function ( MediaWikiServices $services ): SiteLinkPageNormalizer { return new SiteLinkPageNormalizer( @@ -1767,7 +1767,7 @@ return [ ); }, - 'WikibaseRepo.SiteLinkTargetProvider' => function ( + 'WikibaseRepo.SiteLinkTargetProvider' => static function ( MediaWikiServices $services ): SiteLinkTargetProvider { return new SiteLinkTargetProvider( @@ -1776,7 +1776,7 @@ return [ ); }, - 'WikibaseRepo.SnakFactory' => function ( MediaWikiServices $services ): SnakFactory { + 'WikibaseRepo.SnakFactory' => static function ( MediaWikiServices $services ): SnakFactory { return new SnakFactory( WikibaseRepo::getPropertyDataTypeLookup( $services ), WikibaseRepo::getDataTypeFactory( $services ), @@ -1784,7 +1784,7 @@ return [ ); }, - 'WikibaseRepo.SnakFormatterFactory' => function ( MediaWikiServices $services ): OutputFormatSnakFormatterFactory { + 'WikibaseRepo.SnakFormatterFactory' => static function ( MediaWikiServices $services ): OutputFormatSnakFormatterFactory { return new OutputFormatSnakFormatterFactory( WikibaseRepo::getDataTypeDefinitions( $services )->getSnakFormatterFactoryCallbacks(), WikibaseRepo::getValueFormatterFactory( $services ), @@ -1794,7 +1794,7 @@ return [ ); }, - 'WikibaseRepo.SnakNormalizer' => function ( MediaWikiServices $services ): SnakNormalizer { + 'WikibaseRepo.SnakNormalizer' => static function ( MediaWikiServices $services ): SnakNormalizer { return new SnakNormalizer( WikibaseRepo::getPropertyDataTypeLookup( $services ), WikibaseRepo::getLogger( $services ), @@ -1803,29 +1803,29 @@ return [ ); }, - 'WikibaseRepo.SnakValueDeserializer' => function ( MediaWikiServices $services ): SnakValueDeserializer { + 'WikibaseRepo.SnakValueDeserializer' => static function ( MediaWikiServices $services ): SnakValueDeserializer { return new SnakValueDeserializer( WikibaseRepo::getDataValueDeserializer( $services ), WikibaseRepo::getDataTypeDefinitions( $services )->getDeserializerBuilders( DataTypeDefinitions::PREFIXED_MODE ) ); }, - 'WikibaseRepo.StatementGuidParser' => function ( MediaWikiServices $services ): StatementGuidParser { + 'WikibaseRepo.StatementGuidParser' => static function ( MediaWikiServices $services ): StatementGuidParser { return new StatementGuidParser( WikibaseRepo::getEntityIdParser( $services ) ); }, - 'WikibaseRepo.StatementGuidValidator' => function ( MediaWikiServices $services ): StatementGuidValidator { + 'WikibaseRepo.StatementGuidValidator' => static function ( MediaWikiServices $services ): StatementGuidValidator { return new StatementGuidValidator( WikibaseRepo::getEntityIdParser( $services ) ); }, - 'WikibaseRepo.StatementNormalizer' => function ( MediaWikiServices $services ): StatementNormalizer { + 'WikibaseRepo.StatementNormalizer' => static function ( MediaWikiServices $services ): StatementNormalizer { return new StatementNormalizer( WikibaseRepo::getSnakNormalizer( $services ), WikibaseRepo::getReferenceNormalizer( $services ) ); }, - 'WikibaseRepo.StorageEntitySerializer' => function ( MediaWikiServices $services ): Serializer { + 'WikibaseRepo.StorageEntitySerializer' => static function ( MediaWikiServices $services ): Serializer { $serializerFactoryCallbacks = WikibaseRepo::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::STORAGE_SERIALIZER_FACTORY_CALLBACK ); $baseSerializerFactory = WikibaseRepo::getBaseDataModelSerializerFactory( $services ); @@ -1838,7 +1838,7 @@ return [ return new DispatchingSerializer( $serializers ); }, - 'WikibaseRepo.Store' => function ( MediaWikiServices $services ): Store { + 'WikibaseRepo.Store' => static function ( MediaWikiServices $services ): Store { // TODO: the idea of local entity source seems not really suitable here. Store should probably // get source definitions and pass the right source/sources to services it creates accordingly // (as long as what it creates should not migrate to *SourceServices in the first place) @@ -1859,23 +1859,23 @@ return [ ); }, - 'WikibaseRepo.StringNormalizer' => function ( MediaWikiServices $services ): StringNormalizer { + 'WikibaseRepo.StringNormalizer' => static function ( MediaWikiServices $services ): StringNormalizer { return new StringNormalizer(); }, - 'WikibaseRepo.StringValueNormalizer' => function ( MediaWikiServices $services ): StringValueNormalizer { + 'WikibaseRepo.StringValueNormalizer' => static function ( MediaWikiServices $services ): StringValueNormalizer { return new StringValueNormalizer( WikibaseRepo::getStringNormalizer( $services ), WikibaseRepo::getLogger( $services ) ); }, - 'WikibaseRepo.SubEntityTypesMapper' => function ( MediaWikiServices $services ): SubEntityTypesMapper { + 'WikibaseRepo.SubEntityTypesMapper' => static function ( MediaWikiServices $services ): SubEntityTypesMapper { return new SubEntityTypesMapper( WikibaseRepo::getEntityTypeDefinitions( $services ) ->get( EntityTypeDefinitions::SUB_ENTITY_TYPES ) ); }, - 'WikibaseRepo.SummaryFormatter' => function ( MediaWikiServices $services ): SummaryFormatter { + 'WikibaseRepo.SummaryFormatter' => static function ( MediaWikiServices $services ): SummaryFormatter { // This needs to use an EntityIdPlainLinkFormatter as we want to mangle // the links created in HtmlPageLinkRendererEndHookHandler afterwards (the links must not // contain a display text: [[Item:Q1]] is fine but [[Item:Q1|Q1]] isn't). @@ -1886,7 +1886,7 @@ return [ // Iterate through all defined entity types and override the formatter for entity IDs. foreach ( WikibaseRepo::getEntityTypeDefinitions( $services )->getEntityTypes() as $entityType ) { - $formatterFactoryCBs[ "PT:wikibase-$entityType" ] = function ( + $formatterFactoryCBs[ "PT:wikibase-$entityType" ] = static function ( $format, FormatterOptions $options ) use ( $idFormatter ) { if ( $format === SnakFormatter::FORMAT_PLAIN ) { @@ -1934,18 +1934,18 @@ return [ ); }, - 'WikibaseRepo.TermBuffer' => function ( MediaWikiServices $services ): TermBuffer { + 'WikibaseRepo.TermBuffer' => static function ( MediaWikiServices $services ): TermBuffer { return WikibaseRepo::getPrefetchingTermLookup( $services ); }, - 'WikibaseRepo.TermFallbackCache' => function ( MediaWikiServices $services ): TermFallbackCacheFacade { + 'WikibaseRepo.TermFallbackCache' => static function ( MediaWikiServices $services ): TermFallbackCacheFacade { return new TermFallbackCacheFacade( WikibaseRepo::getTermFallbackCacheFactory( $services )->getTermFallbackCache(), WikibaseRepo::getSettings( $services )->getSetting( 'sharedCacheDuration' ) ); }, - 'WikibaseRepo.TermFallbackCacheFactory' => function ( MediaWikiServices $services ): TermFallbackCacheFactory { + 'WikibaseRepo.TermFallbackCacheFactory' => static function ( MediaWikiServices $services ): TermFallbackCacheFactory { $settings = WikibaseRepo::getSettings( $services ); return new TermFallbackCacheFactory( $settings->getSetting( 'sharedCacheType' ), @@ -1958,7 +1958,7 @@ return [ ); }, - 'WikibaseRepo.TermInLangIdsResolverFactory' => function ( + 'WikibaseRepo.TermInLangIdsResolverFactory' => static function ( MediaWikiServices $services ): TermInLangIdsResolverFactory { return new TermInLangIdsResolverFactory( @@ -1968,23 +1968,23 @@ return [ ); }, - 'WikibaseRepo.TermLookup' => function ( MediaWikiServices $services ): TermLookup { + 'WikibaseRepo.TermLookup' => static function ( MediaWikiServices $services ): TermLookup { return WikibaseRepo::getPrefetchingTermLookup( $services ); }, - 'WikibaseRepo.TermsCollisionDetectorFactory' => function ( MediaWikiServices $services ): TermsCollisionDetectorFactory { + 'WikibaseRepo.TermsCollisionDetectorFactory' => static function ( MediaWikiServices $services ): TermsCollisionDetectorFactory { return new TermsCollisionDetectorFactory( WikibaseRepo::getRepoDomainDbFactory( $services )->newRepoDb(), WikibaseRepo::getTypeIdsLookup( $services ) ); }, - 'WikibaseRepo.TermsLanguages' => function ( MediaWikiServices $services ): ContentLanguages { + 'WikibaseRepo.TermsLanguages' => static function ( MediaWikiServices $services ): ContentLanguages { return WikibaseRepo::getWikibaseContentLanguages( $services ) ->getContentLanguages( WikibaseContentLanguages::CONTEXT_TERM ); }, - 'WikibaseRepo.TermStoreWriterFactory' => function ( MediaWikiServices $services ): TermStoreWriterFactory { + 'WikibaseRepo.TermStoreWriterFactory' => static function ( MediaWikiServices $services ): TermStoreWriterFactory { return new TermStoreWriterFactory( WikibaseRepo::getLocalEntitySource( $services ), WikibaseRepo::getStringNormalizer( $services ), @@ -1997,7 +1997,7 @@ return [ ); }, - 'WikibaseRepo.TermValidatorFactory' => function ( MediaWikiServices $services ): TermValidatorFactory { + 'WikibaseRepo.TermValidatorFactory' => static function ( MediaWikiServices $services ): TermValidatorFactory { $settings = WikibaseRepo::getSettings( $services ); // Use the old deprecated setting if it exists @@ -2021,23 +2021,23 @@ return [ ); }, - 'WikibaseRepo.TokenCheckInteractor' => function ( MediaWikiServices $services ): TokenCheckInteractor { + 'WikibaseRepo.TokenCheckInteractor' => static function ( MediaWikiServices $services ): TokenCheckInteractor { return new TokenCheckInteractor(); }, - 'WikibaseRepo.TypeIdsAcquirer' => function ( MediaWikiServices $services ): TypeIdsAcquirer { + 'WikibaseRepo.TypeIdsAcquirer' => static function ( MediaWikiServices $services ): TypeIdsAcquirer { return WikibaseRepo::getDatabaseTypeIdsStore( $services ); }, - 'WikibaseRepo.TypeIdsLookup' => function ( MediaWikiServices $services ): TypeIdsLookup { + 'WikibaseRepo.TypeIdsLookup' => static function ( MediaWikiServices $services ): TypeIdsLookup { return WikibaseRepo::getDatabaseTypeIdsStore( $services ); }, - 'WikibaseRepo.TypeIdsResolver' => function ( MediaWikiServices $services ): TypeIdsResolver { + 'WikibaseRepo.TypeIdsResolver' => static function ( MediaWikiServices $services ): TypeIdsResolver { return WikibaseRepo::getDatabaseTypeIdsStore( $services ); }, - 'WikibaseRepo.UnitConverter' => function ( MediaWikiServices $services ): ?UnitConverter { + 'WikibaseRepo.UnitConverter' => static function ( MediaWikiServices $services ): ?UnitConverter { $settings = WikibaseRepo::getSettings( $services ); if ( !$settings->hasSetting( 'unitStorage' ) ) { return null; @@ -2052,7 +2052,7 @@ return [ return new UnitConverter( $unitStorage, WikibaseRepo::getItemVocabularyBaseUri( $services ) ); }, - 'WikibaseRepo.UserLanguage' => function ( MediaWikiServices $services ): Language { + 'WikibaseRepo.UserLanguage' => static function ( MediaWikiServices $services ): Language { global $wgLang; // TODO: define a LanguageProvider service instead of using a global directly. @@ -2067,12 +2067,12 @@ return [ return $wgLang; }, - 'WikibaseRepo.ValidatorErrorLocalizer' => function ( MediaWikiServices $services ): ValidatorErrorLocalizer { + 'WikibaseRepo.ValidatorErrorLocalizer' => static function ( MediaWikiServices $services ): ValidatorErrorLocalizer { $formatter = WikibaseRepo::getMessageParameterFormatter( $services ); return new ValidatorErrorLocalizer( $formatter ); }, - 'WikibaseRepo.ValueFormatterFactory' => function ( MediaWikiServices $services ): OutputFormatValueFormatterFactory { + 'WikibaseRepo.ValueFormatterFactory' => static function ( MediaWikiServices $services ): OutputFormatValueFormatterFactory { $formatterFactoryCBs = WikibaseRepo::getDataTypeDefinitions( $services ) ->getFormatterFactoryCallbacks( DataTypeDefinitions::PREFIXED_MODE ); @@ -2083,7 +2083,7 @@ return [ ); }, - 'WikibaseRepo.ValueParserFactory' => function ( MediaWikiServices $services ): ValueParserFactory { + 'WikibaseRepo.ValueParserFactory' => static function ( MediaWikiServices $services ): ValueParserFactory { $dataTypeDefinitions = WikibaseRepo::getDataTypeDefinitions( $services ); $callbacks = $dataTypeDefinitions->getParserFactoryCallbacks(); @@ -2099,14 +2099,14 @@ return [ $callbacks['globecoordinate'] = $prefixedCallbacks['VT:globecoordinate']; } // 'null' is not a datatype. Kept for backwards compatibility. - $callbacks['null'] = function () { + $callbacks['null'] = static function () { return new NullParser(); }; return new ValueParserFactory( $callbacks ); }, - 'WikibaseRepo.ValueSnakRdfBuilderFactory' => function ( MediaWikiServices $services ): ValueSnakRdfBuilderFactory { + 'WikibaseRepo.ValueSnakRdfBuilderFactory' => static function ( MediaWikiServices $services ): ValueSnakRdfBuilderFactory { return new ValueSnakRdfBuilderFactory( WikibaseRepo::getDataTypeDefinitions( $services ) ->getRdfBuilderFactoryCallbacks( DataTypeDefinitions::PREFIXED_MODE ), @@ -2114,7 +2114,7 @@ return [ ); }, - 'WikibaseRepo.ViewFactory' => function ( MediaWikiServices $services ): ViewFactory { + 'WikibaseRepo.ViewFactory' => static function ( MediaWikiServices $services ): ViewFactory { $settings = WikibaseRepo::getSettings( $services ); $statementGrouperBuilder = new StatementGrouperBuilder( @@ -2156,14 +2156,14 @@ return [ ); }, - 'WikibaseRepo.WikibaseContentLanguages' => function ( MediaWikiServices $services ): WikibaseContentLanguages { + 'WikibaseRepo.WikibaseContentLanguages' => static function ( MediaWikiServices $services ): WikibaseContentLanguages { return WikibaseContentLanguages::getDefaultInstance( $services->getHookContainer(), $services->getLanguageNameUtils() ); }, - 'WikibaseRepo.WikibaseServices' => function ( MediaWikiServices $services ): WikibaseServices { + 'WikibaseRepo.WikibaseServices' => static function ( MediaWikiServices $services ): WikibaseServices { $entitySourceDefinitions = WikibaseRepo::getEntitySourceDefinitions( $services ); $singleEntitySourceServicesFactory = new SingleEntitySourceServicesFactory( WikibaseRepo::getEntityIdParser( $services ), diff --git a/repo/WikibaseRepo.datatypes.php b/repo/WikibaseRepo.datatypes.php index 7d5c3e4..b00ead2 100644 --- a/repo/WikibaseRepo.datatypes.php +++ b/repo/WikibaseRepo.datatypes.php @@ -71,7 +71,7 @@ use Wikibase\Repo\Rdf\Values\TimeRdfBuilder; use Wikibase\Repo\WikibaseRepo; use Wikimedia\Purtle\RdfWriter; -return call_user_func( function() { +return call_user_func( static function() { // NOTE: 'validator-factory-callback' callbacks act as glue between the high level interface // DataValueValidatorFactory and the low level factory for validators for well known data types, // the ValidatorBuilders class. @@ -89,25 +89,25 @@ return call_user_func( function() { return [ 'VT:bad' => [ - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseRepo::getDefaultValueFormatterBuilders(); return $factory->newUnDeserializableValueFormatter( $format, $options ); }, ], 'PT:commonsMedia' => [ 'expert-module' => 'jquery.valueview.experts.CommonsMediaType', - 'validator-factory-callback' => function() { + 'validator-factory-callback' => static function() { $factory = WikibaseRepo::getDefaultValidatorBuilders(); // Don't go for commons during unit tests. return $factory->buildMediaValidators( defined( 'MW_PHPUNIT_TEST' ) ? 'doNotCheckExistence' : 'checkExistence' ); }, - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseRepo::getDefaultValueFormatterBuilders(); return $factory->newCommonsMediaFormatter( $format, $options ); }, - 'rdf-builder-factory-callback' => function ( + 'rdf-builder-factory-callback' => static function ( $flags, RdfVocabulary $vocab, RdfWriter $writer, @@ -116,7 +116,7 @@ return call_user_func( function() { ) { return new CommonsMediaRdfBuilder( $vocab ); }, - 'rdf-data-type' => function() { + 'rdf-data-type' => static function() { return PropertySpecificComponentsRdfBuilder::OBJECT_PROPERTY; }, 'normalizer-factory-callback' => static function () { @@ -129,18 +129,18 @@ return call_user_func( function() { ], 'PT:geo-shape' => [ 'expert-module' => 'jquery.valueview.experts.GeoShape', - 'validator-factory-callback' => function() { + 'validator-factory-callback' => static function() { $factory = WikibaseRepo::getDefaultValidatorBuilders(); // Don't go for commons during unit tests. return $factory->buildGeoShapeValidators( defined( 'MW_PHPUNIT_TEST' ) ? 'doNotCheckExistence' : 'checkExistence' ); }, - 'formatter-factory-callback' => function( $format ) { + 'formatter-factory-callback' => static function( $format ) { $factory = WikibaseRepo::getDefaultValueFormatterBuilders(); return $factory->newGeoShapeFormatter( $format ); }, - 'rdf-builder-factory-callback' => function ( + 'rdf-builder-factory-callback' => static function ( $flags, RdfVocabulary $vocab, RdfWriter $writer, @@ -149,24 +149,24 @@ return call_user_func( function() { ) { return new GeoShapeRdfBuilder( $vocab ); }, - 'rdf-data-type' => function() { + 'rdf-data-type' => static function() { return PropertySpecificComponentsRdfBuilder::OBJECT_PROPERTY; }, ], 'PT:tabular-data' => [ 'expert-module' => 'jquery.valueview.experts.TabularData', - 'validator-factory-callback' => function() { + 'validator-factory-callback' => static function() { $factory = WikibaseRepo::getDefaultValidatorBuilders(); // Don't go for commons during unit tests. return $factory->buildTabularDataValidators( defined( 'MW_PHPUNIT_TEST' ) ? 'doNotCheckExistence' : 'checkExistence' ); }, - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseRepo::getDefaultValueFormatterBuilders(); return $factory->newTabularDataFormatter( $format, $options ); }, - 'rdf-builder-factory-callback' => function ( + 'rdf-builder-factory-callback' => static function ( $flags, RdfVocabulary $vocab, RdfWriter $writer, @@ -175,25 +175,25 @@ return call_user_func( function() { ) { return new TabularDataRdfBuilder( $vocab ); }, - 'rdf-data-type' => function() { + 'rdf-data-type' => static function() { return PropertySpecificComponentsRdfBuilder::OBJECT_PROPERTY; }, ], 'VT:globecoordinate' => [ 'expert-module' => 'jquery.valueview.experts.GlobeCoordinateInput', - 'validator-factory-callback' => function() { + 'validator-factory-callback' => static function() { $factory = WikibaseRepo::getDefaultValidatorBuilders(); return $factory->buildCoordinateValidators(); }, 'deserializer-builder' => GlobeCoordinateValue::class, - 'parser-factory-callback' => function( ParserOptions $options ) { + 'parser-factory-callback' => static function( ParserOptions $options ) { return new GlobeCoordinateParser( $options ); }, - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseRepo::getDefaultValueFormatterBuilders(); return $factory->newGlobeCoordinateFormatter( $format, $options ); }, - 'rdf-builder-factory-callback' => function ( + 'rdf-builder-factory-callback' => static function ( $flags, RdfVocabulary $vocab, RdfWriter $writer, @@ -207,7 +207,7 @@ return call_user_func( function() { ], 'VT:monolingualtext' => [ 'expert-module' => 'jquery.valueview.experts.MonolingualText', - 'validator-factory-callback' => function() { + 'validator-factory-callback' => static function() { $constraints = WikibaseRepo::getSettings() ->getSetting( 'string-limits' )['VT:monolingualtext']; $maxLength = $constraints['length']; @@ -215,14 +215,14 @@ return call_user_func( function() { return $factory->buildMonolingualTextValidators( $maxLength ); }, 'deserializer-builder' => MonolingualTextValue::class, - 'parser-factory-callback' => function( ParserOptions $options ) { + 'parser-factory-callback' => static function( ParserOptions $options ) { return new MonolingualTextParser( $options ); }, - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseRepo::getDefaultValueFormatterBuilders(); return $factory->newMonolingualFormatter( $format, $options ); }, - 'rdf-builder-factory-callback' => function ( + 'rdf-builder-factory-callback' => static function ( $flags, RdfVocabulary $vocab, RdfWriter $writer, @@ -234,22 +234,22 @@ return call_user_func( function() { ], 'VT:quantity' => [ 'expert-module' => 'jquery.valueview.experts.QuantityInput', - 'validator-factory-callback' => function() { + 'validator-factory-callback' => static function() { $factory = WikibaseRepo::getDefaultValidatorBuilders(); return $factory->buildQuantityValidators(); }, 'deserializer-builder' => QuantityValue::class, - 'parser-factory-callback' => function( ParserOptions $options ) { + 'parser-factory-callback' => static function( ParserOptions $options ) { $language = MediaWikiServices::getInstance()->getLanguageFactory() ->getLanguage( $options->getOption( ValueParser::OPT_LANG ) ); $unlocalizer = new MediaWikiNumberUnlocalizer( $language ); return new QuantityParser( $options, $unlocalizer ); }, - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseRepo::getDefaultValueFormatterBuilders(); return $factory->newQuantityFormatter( $format, $options ); }, - 'rdf-builder-factory-callback' => function ( + 'rdf-builder-factory-callback' => static function ( $flags, RdfVocabulary $vocab, RdfWriter $writer, @@ -262,13 +262,13 @@ return call_user_func( function() { WikibaseRepo::getUnitConverter() : null; return new QuantityRdfBuilder( $complexValueHelper, $unitConverter ); }, - 'search-index-data-formatter-callback' => function ( UnboundedQuantityValue $value ) { + 'search-index-data-formatter-callback' => static function ( UnboundedQuantityValue $value ) { return (string)round( $value->getAmount()->getValueFloat() ); }, ], 'VT:string' => [ 'expert-module' => 'jquery.valueview.experts.StringValue', - 'validator-factory-callback' => function() { + 'validator-factory-callback' => static function() { $factory = WikibaseRepo::getDefaultValidatorBuilders(); $constraints = WikibaseRepo::getSettings() ->getSetting( 'string-limits' )['VT:string']; @@ -277,15 +277,15 @@ return call_user_func( function() { return $factory->buildStringValidators( $maxLength ); }, 'deserializer-builder' => StringValue::class, - 'parser-factory-callback' => function ( ParserOptions $options ) { + 'parser-factory-callback' => static function ( ParserOptions $options ) { $normalizer = WikibaseRepo::getStringNormalizer(); return new StringParser( new WikibaseStringValueNormalizer( $normalizer ) ); }, - 'formatter-factory-callback' => function( $format ) { + 'formatter-factory-callback' => static function( $format ) { $factory = WikibaseRepo::getDefaultValueFormatterBuilders(); return $factory->newStringFormatter( $format ); }, - 'rdf-builder-factory-callback' => function ( + 'rdf-builder-factory-callback' => static function ( $flags, RdfVocabulary $vocab, RdfWriter $writer, @@ -294,7 +294,7 @@ return call_user_func( function() { ) { return new LiteralValueRdfBuilder( null, null ); }, - 'search-index-data-formatter-callback' => function ( StringValue $value ) { + 'search-index-data-formatter-callback' => static function ( StringValue $value ) { return $value->getValue(); }, 'normalizer-factory-callback' => static function () { @@ -303,20 +303,20 @@ return call_user_func( function() { ], 'VT:time' => [ 'expert-module' => 'jquery.valueview.experts.TimeInput', - 'validator-factory-callback' => function() { + 'validator-factory-callback' => static function() { $factory = WikibaseRepo::getDefaultValidatorBuilders(); return $factory->buildTimeValidators(); }, 'deserializer-builder' => TimeValue::class, - 'parser-factory-callback' => function( ParserOptions $options ) { + 'parser-factory-callback' => static function( ParserOptions $options ) { $factory = new TimeParserFactory( $options ); return $factory->getTimeParser(); }, - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseRepo::getDefaultValueFormatterBuilders(); return $factory->newTimeFormatter( $format, $options ); }, - 'rdf-builder-factory-callback' => function ( + 'rdf-builder-factory-callback' => static function ( $flags, RdfVocabulary $vocab, RdfWriter $writer, @@ -331,18 +331,18 @@ return call_user_func( function() { }, ], 'PT:url' => [ - 'validator-factory-callback' => function() { + 'validator-factory-callback' => static function() { $factory = WikibaseRepo::getDefaultValidatorBuilders(); $constraints = WikibaseRepo::getSettings() ->getSetting( 'string-limits' )['PT:url']; $maxLength = $constraints['length']; return $factory->buildUrlValidators( $maxLength ); }, - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseRepo::getDefaultValueFormatterBuilders(); return $factory->newUrlFormatter( $format, $options ); }, - 'rdf-builder-factory-callback' => function ( + 'rdf-builder-factory-callback' => static function ( $flags, RdfVocabulary $vocab, RdfWriter $writer, @@ -351,17 +351,17 @@ return call_user_func( function() { ) { return new ObjectUriRdfBuilder(); }, - 'rdf-data-type' => function() { + 'rdf-data-type' => static function() { return PropertySpecificComponentsRdfBuilder::OBJECT_PROPERTY; }, ], 'PT:external-id' => [ // NOTE: for 'formatter-factory-callback', we fall back to plain text formatting - 'snak-formatter-factory-callback' => function( $format ) { + 'snak-formatter-factory-callback' => static function( $format ) { $factory = WikibaseRepo::getDefaultSnakFormatterBuilders(); return $factory->newExternalIdentifierFormatter( $format ); }, - 'rdf-builder-factory-callback' => function ( + 'rdf-builder-factory-callback' => static function ( $mode, RdfVocabulary $vocab, RdfWriter $writer, @@ -376,7 +376,7 @@ return call_user_func( function() { }, ], 'VT:wikibase-entityid' => [ - 'validator-factory-callback' => function() { + 'validator-factory-callback' => static function() { $factory = WikibaseRepo::getDefaultValidatorBuilders(); return $factory->buildEntityValidators(); }, @@ -401,15 +401,15 @@ return call_user_func( function() { return EntityIdValue::newFromArray( $value ); } }, - 'parser-factory-callback' => function ( ParserOptions $options ) { + 'parser-factory-callback' => static function ( ParserOptions $options ) { $entityIdParser = WikibaseRepo::getEntityIdParser(); return new EntityIdValueParser( $entityIdParser ); }, - 'formatter-factory-callback' => function( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function( $format, FormatterOptions $options ) { $factory = WikibaseRepo::getDefaultValueFormatterBuilders(); return $factory->newEntityIdFormatter( $format, $options ); }, - 'rdf-builder-factory-callback' => function ( + 'rdf-builder-factory-callback' => static function ( $flags, RdfVocabulary $vocab, RdfWriter $writer, @@ -418,17 +418,17 @@ return call_user_func( function() { ) { return new EntityIdRdfBuilder( $vocab, $tracker ); }, - 'search-index-data-formatter-callback' => function ( EntityIdValue $value ) { + 'search-index-data-formatter-callback' => static function ( EntityIdValue $value ) { return $value->getEntityId()->getSerialization(); }, ], 'PT:wikibase-item' => [ 'expert-module' => 'wikibase.experts.Item', - 'validator-factory-callback' => function() { + 'validator-factory-callback' => static function() { $factory = WikibaseRepo::getDefaultValidatorBuilders(); return $factory->buildItemValidators(); }, - 'formatter-factory-callback' => function ( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function ( $format, FormatterOptions $options ) { $factory = WikibaseRepo::getDefaultValueFormatterBuilders(); $snakFormat = new SnakFormat(); @@ -450,17 +450,17 @@ return call_user_func( function() { return $factory->newEntityIdFormatter( $format, $options ); }, - 'rdf-data-type' => function() { + 'rdf-data-type' => static function() { return PropertySpecificComponentsRdfBuilder::OBJECT_PROPERTY; }, ], 'PT:wikibase-property' => [ 'expert-module' => 'wikibase.experts.Property', - 'validator-factory-callback' => function() { + 'validator-factory-callback' => static function() { $factory = WikibaseRepo::getDefaultValidatorBuilders(); return $factory->buildPropertyValidators(); }, - 'formatter-factory-callback' => function ( $format, FormatterOptions $options ) { + 'formatter-factory-callback' => static function ( $format, FormatterOptions $options ) { $factory = WikibaseRepo::getDefaultValueFormatterBuilders(); $snakFormat = new SnakFormat(); @@ -482,7 +482,7 @@ return call_user_func( function() { return $factory->newEntityIdFormatter( $format, $options ); }, - 'rdf-data-type' => function() { + 'rdf-data-type' => static function() { return PropertySpecificComponentsRdfBuilder::OBJECT_PROPERTY; }, ], diff --git a/repo/WikibaseRepo.entitytypes.php b/repo/WikibaseRepo.entitytypes.php index 329304c..1595501 100644 --- a/repo/WikibaseRepo.entitytypes.php +++ b/repo/WikibaseRepo.entitytypes.php @@ -81,15 +81,15 @@ use Wikimedia\Purtle\RdfWriter; return [ 'item' => [ - Def::ARTICLE_ID_LOOKUP_CALLBACK => function () { + Def::ARTICLE_ID_LOOKUP_CALLBACK => static function () { return new TitleLookupBasedEntityArticleIdLookup( WikibaseRepo::getEntityTitleLookup() ); }, - Def::STORAGE_SERIALIZER_FACTORY_CALLBACK => function( SerializerFactory $serializerFactory ) { + Def::STORAGE_SERIALIZER_FACTORY_CALLBACK => static function( SerializerFactory $serializerFactory ) { return $serializerFactory->newItemSerializer(); }, - Def::VIEW_FACTORY_CALLBACK => function( + Def::VIEW_FACTORY_CALLBACK => static function( Language $language, TermLanguageFallbackChain $fallbackChain, EntityDocument $entity @@ -107,24 +107,24 @@ return [ ) ); }, - Def::META_TAGS_CREATOR_CALLBACK => function ( $userLanguage ) { + Def::META_TAGS_CREATOR_CALLBACK => static function ( $userLanguage ) { $languageFallbackChainFactory = WikibaseRepo::getLanguageFallbackChainFactory(); $languageFallbackChain = $languageFallbackChainFactory->newFromLanguage( $userLanguage ); return new FingerprintableEntityMetaTagsCreator( $languageFallbackChain ); }, Def::CONTENT_MODEL_ID => ItemContent::CONTENT_MODEL_ID, - Def::CONTENT_HANDLER_FACTORY_CALLBACK => function() { + Def::CONTENT_HANDLER_FACTORY_CALLBACK => static function() { return WikibaseRepo::getItemHandler(); }, - Def::ENTITY_FACTORY_CALLBACK => function() { + Def::ENTITY_FACTORY_CALLBACK => static function() { return new Item(); }, - Def::CHANGEOP_DESERIALIZER_CALLBACK => function() { + Def::CHANGEOP_DESERIALIZER_CALLBACK => static function() { return new ItemChangeOpDeserializer( WikibaseRepo::getChangeOpDeserializerFactory() ); }, - Def::RDF_BUILDER_FACTORY_CALLBACK => function( + Def::RDF_BUILDER_FACTORY_CALLBACK => static function( $flavorFlags, RdfVocabulary $vocabulary, RdfWriter $writer, @@ -174,7 +174,7 @@ return [ $fullStatementRdfBuilderFactory ); }, - Def::RDF_BUILDER_STUB_FACTORY_CALLBACK => function( + Def::RDF_BUILDER_STUB_FACTORY_CALLBACK => static function( RdfVocabulary $vocabulary, RdfWriter $writer ) { @@ -192,7 +192,7 @@ return [ $languageCodes ); }, - Def::ENTITY_DIFF_VISUALIZER_CALLBACK => function ( + Def::ENTITY_DIFF_VISUALIZER_CALLBACK => static function ( MessageLocalizer $messageLocalizer, ClaimDiffer $claimDiffer, ClaimDifferenceVisualizer $claimDiffView, @@ -212,7 +212,7 @@ return [ $basicEntityDiffVisualizer ); }, - Def::ENTITY_SEARCH_CALLBACK => function ( WebRequest $request ) { + Def::ENTITY_SEARCH_CALLBACK => static function ( WebRequest $request ) { $itemSource = WikibaseRepo::getEntitySourceDefinitions() ->getDatabaseSourceForEntityType( Item::ENTITY_TYPE ); if ( $itemSource === null ) { @@ -241,7 +241,7 @@ return [ ] ); }, - Def::LINK_FORMATTER_CALLBACK => function( Language $language ) { + Def::LINK_FORMATTER_CALLBACK => static function( Language $language ) { $services = MediaWikiServices::getInstance(); return new DefaultEntityLinkFormatter( $language, @@ -249,7 +249,7 @@ return [ $services->getLanguageFactory() ); }, - Def::ENTITY_ID_HTML_LINK_FORMATTER_CALLBACK => function( Language $language ) { + Def::ENTITY_ID_HTML_LINK_FORMATTER_CALLBACK => static function( Language $language ) { $languageLabelLookup = WikibaseRepo::getFallbackLabelDescriptionLookupFactory() ->newLabelDescriptionLookup( $language ); return new LabelsProviderEntityIdHtmlLinkFormatter( @@ -261,47 +261,47 @@ return [ WikibaseRepo::getEntityRedirectChecker() ); }, - Def::ENTITY_REFERENCE_EXTRACTOR_CALLBACK => function() { + Def::ENTITY_REFERENCE_EXTRACTOR_CALLBACK => static function() { return new EntityReferenceExtractorCollection( [ new SiteLinkBadgeItemReferenceExtractor(), new StatementEntityReferenceExtractor( WikibaseRepo::getItemUrlParser() ), ] ); }, - Def::PREFETCHING_TERM_LOOKUP_CALLBACK => function ( DatabaseEntitySource $entitySource ) { + Def::PREFETCHING_TERM_LOOKUP_CALLBACK => static function ( DatabaseEntitySource $entitySource ) { $termIdsResolver = WikibaseRepo::getTermInLangIdsResolverFactory() ->getResolverForEntitySource( $entitySource ); return new PrefetchingItemTermLookup( $termIdsResolver ); }, - Def::URL_LOOKUP_CALLBACK => function () { + Def::URL_LOOKUP_CALLBACK => static function () { return new TitleLookupBasedEntityUrlLookup( WikibaseRepo::getEntityTitleLookup() ); }, - Def::EXISTENCE_CHECKER_CALLBACK => function () { + Def::EXISTENCE_CHECKER_CALLBACK => static function () { $services = MediaWikiServices::getInstance(); return new TitleLookupBasedEntityExistenceChecker( WikibaseRepo::getEntityTitleLookup( $services ), $services->getLinkBatchFactory() ); }, - Def::REDIRECT_CHECKER_CALLBACK => function () { + Def::REDIRECT_CHECKER_CALLBACK => static function () { return new TitleLookupBasedEntityRedirectChecker( WikibaseRepo::getEntityTitleLookup() ); }, - Def::TITLE_TEXT_LOOKUP_CALLBACK => function () { + Def::TITLE_TEXT_LOOKUP_CALLBACK => static function () { return new TitleLookupBasedEntityTitleTextLookup( WikibaseRepo::getEntityTitleLookup() ); }, ], 'property' => [ - Def::ARTICLE_ID_LOOKUP_CALLBACK => function () { + Def::ARTICLE_ID_LOOKUP_CALLBACK => static function () { return new TitleLookupBasedEntityArticleIdLookup( WikibaseRepo::getEntityTitleLookup() ); }, - Def::STORAGE_SERIALIZER_FACTORY_CALLBACK => function( SerializerFactory $serializerFactory ) { + Def::STORAGE_SERIALIZER_FACTORY_CALLBACK => static function( SerializerFactory $serializerFactory ) { return $serializerFactory->newPropertySerializer(); }, - Def::VIEW_FACTORY_CALLBACK => function( + Def::VIEW_FACTORY_CALLBACK => static function( Language $language, TermLanguageFallbackChain $fallbackChain, EntityDocument $entity @@ -319,24 +319,24 @@ return [ ) ); }, - Def::META_TAGS_CREATOR_CALLBACK => function ( Language $userLanguage ) { + Def::META_TAGS_CREATOR_CALLBACK => static function ( Language $userLanguage ) { $languageFallbackChainFactory = WikibaseRepo::getLanguageFallbackChainFactory(); $languageFallbackChain = $languageFallbackChainFactory->newFromLanguage( $userLanguage ); return new FingerprintableEntityMetaTagsCreator( $languageFallbackChain ); }, Def::CONTENT_MODEL_ID => PropertyContent::CONTENT_MODEL_ID, - Def::CONTENT_HANDLER_FACTORY_CALLBACK => function() { + Def::CONTENT_HANDLER_FACTORY_CALLBACK => static function() { return WikibaseRepo::getPropertyHandler(); }, - Def::ENTITY_FACTORY_CALLBACK => function() { + Def::ENTITY_FACTORY_CALLBACK => static function() { return Property::newFromType( '' ); }, - Def::CHANGEOP_DESERIALIZER_CALLBACK => function() { + Def::CHANGEOP_DESERIALIZER_CALLBACK => static function() { return new PropertyChangeOpDeserializer( WikibaseRepo::getChangeOpDeserializerFactory() ); }, - Def::RDF_BUILDER_FACTORY_CALLBACK => function( + Def::RDF_BUILDER_FACTORY_CALLBACK => static function( $flavorFlags, RdfVocabulary $vocabulary, RdfWriter $writer, @@ -391,7 +391,7 @@ return [ $propertySpecificRdfBuilder ); }, - Def::RDF_BUILDER_STUB_FACTORY_CALLBACK => function( + Def::RDF_BUILDER_STUB_FACTORY_CALLBACK => static function( RdfVocabulary $vocabulary, RdfWriter $writer ) { @@ -414,7 +414,7 @@ return [ $labelPredicates ); }, - Def::ENTITY_SEARCH_CALLBACK => function ( WebRequest $request ) { + Def::ENTITY_SEARCH_CALLBACK => static function ( WebRequest $request ) { $propertySource = WikibaseRepo::getEntitySourceDefinitions() ->getDatabaseSourceForEntityType( Property::ENTITY_TYPE ); if ( $propertySource === null ) { @@ -447,7 +447,7 @@ return [ WikibaseRepo::getPropertyDataTypeLookup() ); }, - Def::LINK_FORMATTER_CALLBACK => function( Language $language ) { + Def::LINK_FORMATTER_CALLBACK => static function( Language $language ) { $services = MediaWikiServices::getInstance(); return new DefaultEntityLinkFormatter( $language, @@ -455,7 +455,7 @@ return [ $services->getLanguageFactory() ); }, - Def::ENTITY_ID_HTML_LINK_FORMATTER_CALLBACK => function( Language $language ) { + Def::ENTITY_ID_HTML_LINK_FORMATTER_CALLBACK => static function( Language $language ) { $languageLabelLookup = WikibaseRepo::getFallbackLabelDescriptionLookupFactory() ->newLabelDescriptionLookup( $language ); return new LabelsProviderEntityIdHtmlLinkFormatter( @@ -467,10 +467,10 @@ return [ WikibaseRepo::getEntityRedirectChecker() ); }, - Def::ENTITY_REFERENCE_EXTRACTOR_CALLBACK => function() { + Def::ENTITY_REFERENCE_EXTRACTOR_CALLBACK => static function() { return new StatementEntityReferenceExtractor( WikibaseRepo::getItemUrlParser() ); }, - Def::PREFETCHING_TERM_LOOKUP_CALLBACK => function ( DatabaseEntitySource $entitySource ) { + Def::PREFETCHING_TERM_LOOKUP_CALLBACK => static function ( DatabaseEntitySource $entitySource ) { $mwServices = MediaWikiServices::getInstance(); $cacheSecret = hash( 'sha256', $mwServices->getMainConfig()->get( 'SecretKey' ) ); @@ -506,20 +506,20 @@ return [ WikibaseRepo::getTermsLanguages( $mwServices ) ); }, - Def::URL_LOOKUP_CALLBACK => function () { + Def::URL_LOOKUP_CALLBACK => static function () { return new TitleLookupBasedEntityUrlLookup( WikibaseRepo::getEntityTitleLookup() ); }, - Def::EXISTENCE_CHECKER_CALLBACK => function () { + Def::EXISTENCE_CHECKER_CALLBACK => static function () { $services = MediaWikiServices::getInstance(); return new TitleLookupBasedEntityExistenceChecker( WikibaseRepo::getEntityTitleLookup( $services ), $services->getLinkBatchFactory() ); }, - Def::REDIRECT_CHECKER_CALLBACK => function () { + Def::REDIRECT_CHECKER_CALLBACK => static function () { return new TitleLookupBasedEntityRedirectChecker( WikibaseRepo::getEntityTitleLookup() ); }, - Def::TITLE_TEXT_LOOKUP_CALLBACK => function () { + Def::TITLE_TEXT_LOOKUP_CALLBACK => static function () { return new TitleLookupBasedEntityTitleTextLookup( WikibaseRepo::getEntityTitleLookup() ); diff --git a/repo/config/Wikibase.default.php b/repo/config/Wikibase.default.php index 9dc9f81..e152ecb 100644 --- a/repo/config/Wikibase.default.php +++ b/repo/config/Wikibase.default.php @@ -99,7 +99,7 @@ return [ 'html', ], - 'entityDataCachePaths' => function() { + 'entityDataCachePaths' => static function() { return [ // JSON from entity page JS, compare wikibase.entityPage.entityLoaded.js wfAppendQuery( @@ -116,13 +116,13 @@ return [ 'enableEntitySearchUI' => true, - 'dataRightsUrl' => function() { + 'dataRightsUrl' => static function() { return $GLOBALS['wgRightsUrl'] ?? ''; }, 'rdfDataRightsUrl' => 'http://creativecommons.org/publicdomain/zero/1.0/', - 'dataRightsText' => function() { + 'dataRightsText' => static function() { return $GLOBALS['wgRightsText'] ?? ''; }, @@ -342,7 +342,7 @@ return [ 'defaultEntityNamespaces' => true, - 'entitySources' => function ( SettingsArray $settings ) { + 'entitySources' => static function ( SettingsArray $settings ) { if ( $settings->getSetting( 'defaultEntityNamespaces' ) ) { global $wgServer; diff --git a/repo/config/Wikibase.example.php b/repo/config/Wikibase.example.php index 05cd0e6..e005ba9 100644 --- a/repo/config/Wikibase.example.php +++ b/repo/config/Wikibase.example.php @@ -16,7 +16,7 @@ if ( !defined( 'MEDIAWIKI' ) ) { die( 'Not an entry point.' ); } -call_user_func( function() { +call_user_func( static function() { $baseNs = 120; // Define these constants immediately so they can be used in LocalSettings.php diff --git a/repo/config/Wikibase.searchindex.php b/repo/config/Wikibase.searchindex.php index 8406441..a9d5a75 100644 --- a/repo/config/Wikibase.searchindex.php +++ b/repo/config/Wikibase.searchindex.php @@ -24,7 +24,7 @@ if ( !defined( 'MEDIAWIKI' ) ) { } // @phan-suppress-next-line PhanUndeclaredVariableDim -$wgHooks['WikibaseTextForSearchIndex'][] = function( EntityContent $entityContent, &$text ) { +$wgHooks['WikibaseTextForSearchIndex'][] = static function( EntityContent $entityContent, &$text ) { if ( !( $entityContent instanceof ItemContent ) ) { return; } diff --git a/repo/includes/Api/CreateClaim.php b/repo/includes/Api/CreateClaim.php index 4b29320..641e3f6 100644 --- a/repo/includes/Api/CreateClaim.php +++ b/repo/includes/Api/CreateClaim.php @@ -108,10 +108,10 @@ class CreateClaim extends ApiBase { $changeOpFactoryProvider->getStatementChangeOpFactory(), $errorReporter, $modificationHelper, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getResultBuilder( $module ); }, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getEntitySavingHelper( $module ); }, $settings->getSetting( 'federatedPropertiesEnabled' ), diff --git a/repo/includes/Api/EditEntity.php b/repo/includes/Api/EditEntity.php index e90172f..cdabda5 100644 --- a/repo/includes/Api/EditEntity.php +++ b/repo/includes/Api/EditEntity.php @@ -180,10 +180,10 @@ class EditEntity extends ModifyEntity { LookupConstants::LATEST_FROM_MASTER ); - $returnFalse = function () { + $returnFalse = static function () { return false; }; - $latestRevision = $latestRevisionResult->onConcreteRevision( function ( $revId ) { + $latestRevision = $latestRevisionResult->onConcreteRevision( static function ( $revId ) { return $revId; } ) ->onRedirect( $returnFalse ) diff --git a/repo/includes/Api/EntityTerms.php b/repo/includes/Api/EntityTerms.php index cfa1b59..12ea50b 100644 --- a/repo/includes/Api/EntityTerms.php +++ b/repo/includes/Api/EntityTerms.php @@ -169,7 +169,7 @@ class EntityTerms extends ApiQueryBase { */ private function getEntityToPageMap( array $entityIds ): array { $entityIdsStrings = array_map( - function( EntityId $id ) { + static function( EntityId $id ) { return $id->getSerialization(); }, $entityIds diff --git a/repo/includes/Api/GetClaims.php b/repo/includes/Api/GetClaims.php index 830a5da..5a70d2b 100644 --- a/repo/includes/Api/GetClaims.php +++ b/repo/includes/Api/GetClaims.php @@ -103,10 +103,10 @@ class GetClaims extends ApiBase { $statementGuidParser, $entityIdParser, $apiHelperFactory->getErrorReporter( $mainModule ), - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getResultBuilder( $module ); }, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getEntityLoadingHelper( $module ); } ); diff --git a/repo/includes/Api/LinkTitles.php b/repo/includes/Api/LinkTitles.php index ebf7afc..b3e870f 100644 --- a/repo/includes/Api/LinkTitles.php +++ b/repo/includes/Api/LinkTitles.php @@ -117,10 +117,10 @@ class LinkTitles extends ApiBase { $apiHelperFactory->getErrorReporter( $mainModule ), $repoSettings->getSetting( 'siteLinkGroups' ), $store->getEntityRevisionLookup( Store::LOOKUP_CACHING_DISABLED ), - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getResultBuilder( $module ); }, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getEntitySavingHelper( $module ); } ); diff --git a/repo/includes/Api/ListSubscribers.php b/repo/includes/Api/ListSubscribers.php index 3bd6500..ed2ba3f 100644 --- a/repo/includes/Api/ListSubscribers.php +++ b/repo/includes/Api/ListSubscribers.php @@ -93,7 +93,7 @@ class ListSubscribers extends ApiQueryBase { } // Normalize entity ids - $idStrings = array_map( function( $entity ) { + $idStrings = array_map( static function( $entity ) { return $entity->getSerialization(); }, $entitiyIds ); diff --git a/repo/includes/Api/MergeItems.php b/repo/includes/Api/MergeItems.php index 37a9dbb..b862954 100644 --- a/repo/includes/Api/MergeItems.php +++ b/repo/includes/Api/MergeItems.php @@ -66,7 +66,7 @@ class MergeItems extends ApiBase { $moduleName, $interactor, $apiHelperFactory->getErrorReporter( $mainModule ), - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getResultBuilder( $module ); }, $settings->getSetting( 'sandboxEntityIds' ) diff --git a/repo/includes/Api/ParseValue.php b/repo/includes/Api/ParseValue.php index d8c5ac1..9f979c7 100644 --- a/repo/includes/Api/ParseValue.php +++ b/repo/includes/Api/ParseValue.php @@ -297,7 +297,7 @@ class ParseValue extends ApiBase { */ private function getValidatorErrorCodes( array $errors ): array { return array_map( - function ( Error $error ) { + static function ( Error $error ) { return $error->getCode(); }, $errors diff --git a/repo/includes/Api/RemoveClaims.php b/repo/includes/Api/RemoveClaims.php index 210e7fc..37eff86 100644 --- a/repo/includes/Api/RemoveClaims.php +++ b/repo/includes/Api/RemoveClaims.php @@ -120,10 +120,10 @@ class RemoveClaims extends ApiBase { $changeOpFactoryProvider->getStatementChangeOpFactory(), $modificationHelper, $statementGuidParser, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getResultBuilder( $module ); }, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getEntitySavingHelper( $module ); }, $settings->getSetting( 'federatedPropertiesEnabled' ), diff --git a/repo/includes/Api/RemoveQualifiers.php b/repo/includes/Api/RemoveQualifiers.php index 0b0aac7..5ac510d 100644 --- a/repo/includes/Api/RemoveQualifiers.php +++ b/repo/includes/Api/RemoveQualifiers.php @@ -117,10 +117,10 @@ class RemoveQualifiers extends ApiBase { $changeOpFactoryProvider->getStatementChangeOpFactory(), $modificationHelper, $statementGuidParser, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getResultBuilder( $module ); }, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getEntitySavingHelper( $module ); }, $repoSettings->getSetting( 'federatedPropertiesEnabled' ), diff --git a/repo/includes/Api/RemoveReferences.php b/repo/includes/Api/RemoveReferences.php index edcb34d..c9c6015 100644 --- a/repo/includes/Api/RemoveReferences.php +++ b/repo/includes/Api/RemoveReferences.php @@ -116,10 +116,10 @@ class RemoveReferences extends ApiBase { $changeOpFactoryProvider->getStatementChangeOpFactory(), $modificationHelper, $statementGuidParser, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getResultBuilder( $module ); }, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getEntitySavingHelper( $module ); }, $repoSettings->getSetting( 'federatedPropertiesEnabled' ), diff --git a/repo/includes/Api/ResultBuilder.php b/repo/includes/Api/ResultBuilder.php index 176c344..b6882f4 100644 --- a/repo/includes/Api/ResultBuilder.php +++ b/repo/includes/Api/ResultBuilder.php @@ -584,7 +584,7 @@ class ResultBuilder { $modifications['*/*/claims'][] = $makeIdKvpCallback; } - $kvpMergeCallback = function( $array ) { + $kvpMergeCallback = static function( $array ) { if ( is_array( $array ) ) { $array[ApiResult::META_KVP_MERGE] = true; } @@ -783,7 +783,7 @@ class ResultBuilder { private function getSiteLinkListArrayWithUrls( array $array ) { $siteLookup = $this->siteLookup; - $addUrlCallback = function( $array ) use ( $siteLookup ) { + $addUrlCallback = static function( $array ) use ( $siteLookup ) { $site = $siteLookup->getSite( $array['site'] ); if ( $site !== null ) { $array['url'] = $site->getPageUrl( $array['title'] ); @@ -843,7 +843,7 @@ class ResultBuilder { if ( is_array( $props ) && !in_array( 'references', $props ) ) { $values = $this->modifier->modifyUsingCallbacks( $values, - [ '*/*' => function ( $array ) { + [ '*/*' => static function ( $array ) { unset( $array['references'] ); return $array; } ] @@ -989,11 +989,11 @@ class ResultBuilder { private function getReferenceArrayWithMetaData( array $array ) { return $this->modifier->modifyUsingCallbacks( $array, [ - 'snaks-order' => function ( $array ) { + 'snaks-order' => static function ( $array ) { ApiResult::setIndexedTagName( $array, 'property' ); return $array; }, - 'snaks' => function ( $array ) { + 'snaks' => static function ( $array ) { foreach ( $array as &$snakGroup ) { if ( is_array( $snakGroup ) ) { ApiResult::setArrayType( $array, 'array' ); diff --git a/repo/includes/Api/SetAliases.php b/repo/includes/Api/SetAliases.php index d6388ea..7ba2876 100644 --- a/repo/includes/Api/SetAliases.php +++ b/repo/includes/Api/SetAliases.php @@ -174,7 +174,7 @@ class SetAliases extends ModifyEntity { $stringNormalizer = $this->stringNormalizer; $aliases = array_map( - function( $str ) use ( $stringNormalizer ) { + static function( $str ) use ( $stringNormalizer ) { return $stringNormalizer->trimToNFC( $str ); }, $aliases @@ -182,7 +182,7 @@ class SetAliases extends ModifyEntity { $aliases = array_filter( $aliases, - function( $str ) { + static function( $str ) { return $str !== ''; } ); diff --git a/repo/includes/Api/SetClaim.php b/repo/includes/Api/SetClaim.php index f1ba90e..48be217 100644 --- a/repo/includes/Api/SetClaim.php +++ b/repo/includes/Api/SetClaim.php @@ -145,10 +145,10 @@ class SetClaim extends ApiBase { $changeOpFactoryProvider->getStatementChangeOpFactory(), $modificationHelper, $statementGuidParser, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getResultBuilder( $module ); }, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getEntitySavingHelper( $module ); }, $stats, diff --git a/repo/includes/Api/SetClaimValue.php b/repo/includes/Api/SetClaimValue.php index 6a81f2b..fcfa559 100644 --- a/repo/includes/Api/SetClaimValue.php +++ b/repo/includes/Api/SetClaimValue.php @@ -112,10 +112,10 @@ class SetClaimValue extends ApiBase { $changeOpFactoryProvider->getStatementChangeOpFactory(), $modificationHelper, $statementGuidParser, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getResultBuilder( $module ); }, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getEntitySavingHelper( $module ); }, $repoSettings->getSetting( 'federatedPropertiesEnabled' ), diff --git a/repo/includes/Api/SetQualifier.php b/repo/includes/Api/SetQualifier.php index 8fcf91f..c7e3194 100644 --- a/repo/includes/Api/SetQualifier.php +++ b/repo/includes/Api/SetQualifier.php @@ -125,16 +125,16 @@ class SetQualifier extends ApiBase { return new self( $mainModule, $moduleName, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getErrorReporter( $module ); }, $changeOpFactoryProvider->getStatementChangeOpFactory(), $modificationHelper, $statementGuidParser, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getResultBuilder( $module ); }, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getEntitySavingHelper( $module ); }, $repoSettings->getSetting( 'federatedPropertiesEnabled' ), diff --git a/repo/includes/Api/SetReference.php b/repo/includes/Api/SetReference.php index 0d827a2..6ed73ba 100644 --- a/repo/includes/Api/SetReference.php +++ b/repo/includes/Api/SetReference.php @@ -138,10 +138,10 @@ class SetReference extends ApiBase { $modificationHelper, $statementGuidParser, $logger, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getResultBuilder( $module ); }, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getEntitySavingHelper( $module ); }, $repoSettings->getSetting( 'federatedPropertiesEnabled' ), diff --git a/repo/includes/Api/SetSiteLink.php b/repo/includes/Api/SetSiteLink.php index 18fd2cd..bd72e31 100644 --- a/repo/includes/Api/SetSiteLink.php +++ b/repo/includes/Api/SetSiteLink.php @@ -236,7 +236,7 @@ class SetSiteLink extends ModifyEntity { } private function getBadgeItemIds( array $badges ): array { - return array_map( function( $badge ) { + return array_map( static function( $badge ) { return new ItemId( $badge ); }, $badges ); } diff --git a/repo/includes/ChangeModification/DispatchChangeModificationNotificationJob.php b/repo/includes/ChangeModification/DispatchChangeModificationNotificationJob.php index 2fccc6d..5ddcd86 100644 --- a/repo/includes/ChangeModification/DispatchChangeModificationNotificationJob.php +++ b/repo/includes/ChangeModification/DispatchChangeModificationNotificationJob.php @@ -83,7 +83,7 @@ abstract class DispatchChangeModificationNotificationJob extends Job { protected function revisionIdentifiersToJson( array $revisionIdentifiers ): string { return json_encode( array_map( - function ( RepoRevisionIdentifier $revisionIdentifier ) { + static function ( RepoRevisionIdentifier $revisionIdentifier ) { return $revisionIdentifier->toArray(); }, $revisionIdentifiers diff --git a/repo/includes/ChangeModification/DispatchChangesJob.php b/repo/includes/ChangeModification/DispatchChangesJob.php index f899d94..120454b 100644 --- a/repo/includes/ChangeModification/DispatchChangesJob.php +++ b/repo/includes/ChangeModification/DispatchChangesJob.php @@ -195,7 +195,7 @@ class DispatchChangesJob extends Job { private function getWikiIdsWithChangedSitelinks( array $changes ): array { return array_values( array_unique( array_reduce( $changes, - function ( $carry, ItemChange $change ) { + static function ( $carry, ItemChange $change ) { return array_merge( $carry, array_keys( $change->getSiteLinkDiff()->getOperations() ) ); }, [] @@ -207,7 +207,7 @@ class DispatchChangesJob extends Job { */ private function deleteChangeRows( array $changes ): void { $this->changeStore->deleteChangesByChangeIds( array_map( - function ( Change $change ): int { + static function ( Change $change ): int { return $change->getId(); }, $changes @@ -275,7 +275,7 @@ class DispatchChangesJob extends Job { */ private function getClientJobSpecification( array $changes ): IJobSpecification { $params = [ - 'changes' => array_map( function ( EntityChange $change ) { + 'changes' => array_map( static function ( EntityChange $change ) { $fields = $change->getFields(); $fields[ChangeRow::INFO] = $change->getSerializedInfo(); return $fields; diff --git a/repo/includes/ChangeOp/ChangeOpValidationException.php b/repo/includes/ChangeOp/ChangeOpValidationException.php index 7e5446d..fff43d6 100644 --- a/repo/includes/ChangeOp/ChangeOpValidationException.php +++ b/repo/includes/ChangeOp/ChangeOpValidationException.php @@ -47,7 +47,7 @@ class ChangeOpValidationException extends ChangeOpException { * @return string */ private function composeErrorMessage( array $errors ) { - $text = implode( '; ', array_map( function( Error $error ) { + $text = implode( '; ', array_map( static function( Error $error ) { return $error->getText(); }, $errors ) ); diff --git a/repo/includes/ChangeOp/ChangeOps.php b/repo/includes/ChangeOp/ChangeOps.php index c05e5ba..30d83e9 100644 --- a/repo/includes/ChangeOp/ChangeOps.php +++ b/repo/includes/ChangeOp/ChangeOps.php @@ -119,7 +119,7 @@ class ChangeOps implements ChangeOp { public function getActions() { return array_unique( array_reduce( $this->changeOps, - function( array $actions, ChangeOp $changeOp ) { + static function( array $actions, ChangeOp $changeOp ) { return array_merge( $actions, $changeOp->getActions() ); }, [] diff --git a/repo/includes/Dumpers/DumpGenerator.php b/repo/includes/Dumpers/DumpGenerator.php index ef73b48..0a14823 100644 --- a/repo/includes/Dumpers/DumpGenerator.php +++ b/repo/includes/Dumpers/DumpGenerator.php @@ -82,7 +82,7 @@ abstract class DumpGenerator { $this->entityPrefetcher = $entityPrefetcher; $this->progressReporter = new NullMessageReporter(); $this->exceptionHandler = new RethrowingExceptionHandler(); - $this->batchCallback = function () { + $this->batchCallback = static function () { }; } diff --git a/repo/includes/EditEntity/MediaWikiEditEntity.php b/repo/includes/EditEntity/MediaWikiEditEntity.php index 4c7d3b9..8a39ddf 100644 --- a/repo/includes/EditEntity/MediaWikiEditEntity.php +++ b/repo/includes/EditEntity/MediaWikiEditEntity.php @@ -197,7 +197,7 @@ class MediaWikiEditEntity implements EditEntity { }; $this->latestRevId = $result->onNonexistentEntity( $returnZero ) ->onRedirect( $returnZero ) - ->onConcreteRevision( function ( $revId ) { + ->onConcreteRevision( static function ( $revId ) { return $revId; } ) ->map(); diff --git a/repo/includes/FederatedProperties/ApiEntityLookup.php b/repo/includes/FederatedProperties/ApiEntityLookup.php index 1ace6bd..6f103f5 100644 --- a/repo/includes/FederatedProperties/ApiEntityLookup.php +++ b/repo/includes/FederatedProperties/ApiEntityLookup.php @@ -98,7 +98,7 @@ class ApiEntityLookup { * @return string[] */ public function getFederatedEntityIdsWithoutPrefix( array $federatedEntityIds ): array { - return array_map( function ( FederatedPropertyId $id ): string { + return array_map( static function ( FederatedPropertyId $id ): string { return $id->getRemoteIdSerialization(); }, $federatedEntityIds ); } diff --git a/repo/includes/FederatedProperties/FederatedPropertiesPrefetchingEntityParserOutputGeneratorDecorator.php b/repo/includes/FederatedProperties/FederatedPropertiesPrefetchingEntityParserOutputGeneratorDecorator.php index 9cb61a5..475e36a 100644 --- a/repo/includes/FederatedProperties/FederatedPropertiesPrefetchingEntityParserOutputGeneratorDecorator.php +++ b/repo/includes/FederatedProperties/FederatedPropertiesPrefetchingEntityParserOutputGeneratorDecorator.php @@ -56,13 +56,13 @@ class FederatedPropertiesPrefetchingEntityParserOutputGeneratorDecorator impleme return; } - $propertyIds = array_map( function( $snak ) { + $propertyIds = array_map( static function( $snak ) { return $snak->getPropertyId(); }, $entity->getStatements()->getAllSnaks() ); $federatedPropertyIds = array_filter( $propertyIds, - function ( $propId ) { + static function ( $propId ) { // TODO: after T288234 is resolved, consider more flexible filtering by type. return $propId instanceof FederatedPropertyId; } diff --git a/repo/includes/Hooks/Formatters/EntityLinkFormatterFactory.php b/repo/includes/Hooks/Formatters/EntityLinkFormatterFactory.php index 4ae0bf7..5c2fff2 100644 --- a/repo/includes/Hooks/Formatters/EntityLinkFormatterFactory.php +++ b/repo/includes/Hooks/Formatters/EntityLinkFormatterFactory.php @@ -36,7 +36,7 @@ class EntityLinkFormatterFactory { $this->callbacks = array_merge( $callbacks, - [ 'default' => function ( Language $language ) use ( $entityTitleTextLookup, $languageFactory ): EntityLinkFormatter { + [ 'default' => static function ( Language $language ) use ( $entityTitleTextLookup, $languageFactory ): EntityLinkFormatter { return new DefaultEntityLinkFormatter( $language, $entityTitleTextLookup, $languageFactory ); } ] ); diff --git a/repo/includes/Hooks/HtmlPageLinkRendererEndHookHandler.php b/repo/includes/Hooks/HtmlPageLinkRendererEndHookHandler.php index 110fa9d..ab08ca8 100644 --- a/repo/includes/Hooks/HtmlPageLinkRendererEndHookHandler.php +++ b/repo/includes/Hooks/HtmlPageLinkRendererEndHookHandler.php @@ -345,7 +345,7 @@ class HtmlPageLinkRendererEndHookHandler implements HtmlPageLinkRendererEndHook private function removeNewClass( string $classes ): string { return implode( ' ', array_filter( preg_split( '/\s+/', $classes ), - function ( $class ) { + static function ( $class ) { return $class !== 'new'; } ) ); diff --git a/repo/includes/MediaWikiLocalizedTextProvider.php b/repo/includes/MediaWikiLocalizedTextProvider.php index fb9e170..3de7587 100644 --- a/repo/includes/MediaWikiLocalizedTextProvider.php +++ b/repo/includes/MediaWikiLocalizedTextProvider.php @@ -46,7 +46,7 @@ class MediaWikiLocalizedTextProvider implements LocalizedTextProvider { public function getEscaped( $key, array $params = [] ) { return ( new Message( $key, - array_map( function ( $param ) { + array_map( static function ( $param ) { return $param instanceof RawMessageParameter ? Message::rawParam( $param->getContents() ) : $param; }, $params ), $this->language diff --git a/repo/includes/Parsers/MwTimeIsoParser.php b/repo/includes/Parsers/MwTimeIsoParser.php index 0e7c0c4..5537c7c 100644 --- a/repo/includes/Parsers/MwTimeIsoParser.php +++ b/repo/includes/Parsers/MwTimeIsoParser.php @@ -210,7 +210,7 @@ class MwTimeIsoParser extends StringValueParser { // Expand the PLURAL cases $regex = preg_replace_callback( $pluralRegex, - function ( $matches ) { + static function ( $matches ) { // Change "{{PLURAL:$1" to "(?:" and "}}" to ")" $replace = str_replace( '\{\{PLURAL\:\$1\|', '(?:', $matches[0] ); $replace = str_replace( '\}\}', ')', $replace ); diff --git a/repo/includes/PropertyServices.php b/repo/includes/PropertyServices.php index ec69b6c..defb08c 100644 --- a/repo/includes/PropertyServices.php +++ b/repo/includes/PropertyServices.php @@ -58,11 +58,11 @@ class PropertyServices { public static function getServiceDefinitions( MediaWikiServices $services ): array { return [ self::PROPERTY_DATA_TYPE_LOOKUP_CALLBACK => [ - ApiEntitySource::TYPE => function () use ( $services ) { + ApiEntitySource::TYPE => static function () use ( $services ) { return WikibaseRepo::getFederatedPropertiesServiceFactory( $services ) ->newApiPropertyDataTypeLookup(); }, - DatabaseEntitySource::TYPE => function () use ( $services ) { + DatabaseEntitySource::TYPE => static function () use ( $services ) { $infoLookup = WikibaseRepo::getPropertyInfoLookup( $services ); $entityLookup = WikibaseRepo::getEntityLookup( $services ); $retrievingLookup = new EntityRetrievingDataTypeLookup( $entityLookup ); diff --git a/repo/includes/Rdf/RdfBuilder.php b/repo/includes/Rdf/RdfBuilder.php index 1edc23f..595ad0c 100644 --- a/repo/includes/Rdf/RdfBuilder.php +++ b/repo/includes/Rdf/RdfBuilder.php @@ -347,15 +347,15 @@ class RdfBuilder implements EntityRdfBuilder, EntityStubRdfBuilder, EntityMentio $lookupResult = $this->entityRevisionLookup->getLatestRevisionId( $id ); $lookupStatus = $lookupResult->onNonexistentEntity( - function () { + static function () { return 'nonexistent'; } )->onConcreteRevision( - function () { + static function () { return 'concrete revision'; } )->onRedirect( - function ( $revisionId, $redirectsTo ) { + static function ( $revisionId, $redirectsTo ) { return $redirectsTo; } )->map(); diff --git a/repo/includes/Rdf/RdfVocabulary.php b/repo/includes/Rdf/RdfVocabulary.php index 1a18e14..3a33928 100644 --- a/repo/includes/Rdf/RdfVocabulary.php +++ b/repo/includes/Rdf/RdfVocabulary.php @@ -222,7 +222,7 @@ class RdfVocabulary { $this->propertyNamespaceNames[$repositoryOrSourceName] = array_combine( $propertyNamespaces, array_map( - function ( $ns ) use ( $predicateNamespacePrefix ) { + static function ( $ns ) use ( $predicateNamespacePrefix ) { return $predicateNamespacePrefix . $ns; }, $propertyNamespaces @@ -231,7 +231,7 @@ class RdfVocabulary { $this->propertyNamespaceNames[$repositoryOrSourceName] += array_combine( $propertyNamespacesUseNodePrefix, array_map( - function ( $ns ) use ( $nodeNamespacePrefix ) { + static function ( $ns ) use ( $nodeNamespacePrefix ) { return $nodeNamespacePrefix . $ns; }, $propertyNamespacesUseNodePrefix diff --git a/repo/includes/RepoHooks.php b/repo/includes/RepoHooks.php index 3d0df5f..4433422 100644 --- a/repo/includes/RepoHooks.php +++ b/repo/includes/RepoHooks.php @@ -147,7 +147,7 @@ final class RepoHooks { // Register callbacks for instantiating ContentHandlers for EntityContent. foreach ( $contentModelIds as $entityType => $model ) { - $wgContentHandlers[$model] = function () use ( $entityType ) { + $wgContentHandlers[$model] = static function () use ( $entityType ) { $entityContentFactory = WikibaseRepo::getEntityContentFactory(); return $entityContentFactory->getContentHandlerForType( $entityType ); }; @@ -933,7 +933,7 @@ final class RepoHooks { [ 'name' => 'resources/contentLanguages.json', - 'callback' => function () { + 'callback' => static function () { $contentLanguages = WikibaseRepo::getWikibaseContentLanguages(); return [ WikibaseContentLanguages::CONTEXT_MONOLINGUAL_TEXT => $contentLanguages @@ -1035,12 +1035,12 @@ final class RepoHooks { public static function onParserOptionsRegister( &$defaults, &$inCacheKey, &$lazyOptions ) { $defaults['wb'] = null; $inCacheKey['wb'] = true; - $lazyOptions['wb'] = function () { + $lazyOptions['wb'] = static function () { return EntityHandler::PARSER_VERSION; }; $defaults['termboxVersion'] = null; $inCacheKey['termboxVersion'] = true; - $lazyOptions['termboxVersion'] = function () { + $lazyOptions['termboxVersion'] = static function () { return TermboxFlag::getInstance()->shouldRenderTermbox() ? TermboxView::TERMBOX_VERSION . TermboxView::CACHE_VERSION : PlaceholderEmittingEntityTermsView::TERMBOX_VERSION . PlaceholderEmittingEntityTermsView::CACHE_VERSION; @@ -1059,12 +1059,12 @@ final class RepoHooks { 'meta', [ 'class' => MetaDataBridgeConfig::class, - 'factory' => function( ApiQuery $apiQuery, string $moduleName, SettingsArray $repoSettings ) { + 'factory' => static function( ApiQuery $apiQuery, string $moduleName, SettingsArray $repoSettings ) { return new MetaDataBridgeConfig( $repoSettings, $apiQuery, $moduleName, - function ( string $pagename ): ?string { + static function ( string $pagename ): ?string { $pageTitle = Title::newFromText( $pagename ); return $pageTitle ? $pageTitle->getFullURL() : null; } diff --git a/repo/includes/Specials/ParameterizedDescriptionTrait.php b/repo/includes/Specials/ParameterizedDescriptionTrait.php index 30ba14a..623d52b 100644 --- a/repo/includes/Specials/ParameterizedDescriptionTrait.php +++ b/repo/includes/Specials/ParameterizedDescriptionTrait.php @@ -52,7 +52,7 @@ trait ParameterizedDescriptionTrait { $this->descriptionParameters = implode( wfMessage( 'special-parameterized-description-separator' )->text(), array_map( - function( $item ) { + static function( $item ) { return wfMessage( 'wikibase-entity-' . $item )->text(); }, $this->editableEntities diff --git a/repo/includes/Specials/SpecialAvailableBadges.php b/repo/includes/Specials/SpecialAvailableBadges.php index bd0730d..76bc3e6 100644 --- a/repo/includes/Specials/SpecialAvailableBadges.php +++ b/repo/includes/Specials/SpecialAvailableBadges.php @@ -78,7 +78,7 @@ class SpecialAvailableBadges extends SpecialWikibasePage { } /** @var ItemId[] $itemIds */ - $itemIds = array_map( function( $idString ) { + $itemIds = array_map( static function( $idString ) { // XXX: Maybe we should use PrefixMappingEntityIdParser for federation? return new ItemId( $idString ); }, array_keys( $this->badgeItems ) ); diff --git a/repo/includes/Specials/SpecialGoToLinkedPage.php b/repo/includes/Specials/SpecialGoToLinkedPage.php index c1ea4fa..597c1e5 100644 --- a/repo/includes/Specials/SpecialGoToLinkedPage.php +++ b/repo/includes/Specials/SpecialGoToLinkedPage.php @@ -257,7 +257,7 @@ class SpecialGoToLinkedPage extends SpecialWikibasePage { ->setSubmitID( 'wb-gotolinkedpage-submit' ) ->setSubmitTextMsg( 'wikibase-gotolinkedpage-submit' ) ->setWrapperLegendMsg( 'wikibase-gotolinkedpage-lookup-fieldset' ) - ->setSubmitCallback( function () {// no-op + ->setSubmitCallback( static function () {// no-op } )->show(); } diff --git a/repo/includes/Specials/SpecialItemByTitle.php b/repo/includes/Specials/SpecialItemByTitle.php index 8b8ffc5..46feafc 100644 --- a/repo/includes/Specials/SpecialItemByTitle.php +++ b/repo/includes/Specials/SpecialItemByTitle.php @@ -242,7 +242,7 @@ class SpecialItemByTitle extends SpecialWikibasePage { ->setSubmitID( 'wb-itembytitle-submit' ) ->setSubmitTextMsg( 'wikibase-itembytitle-submit' ) ->setWrapperLegendMsg( 'wikibase-itembytitle-lookup-fieldset' ) - ->setSubmitCallback( function () {// no-op + ->setSubmitCallback( static function () {// no-op } )->show(); if ( $siteId && !$siteExists ) { diff --git a/repo/includes/Specials/SpecialItemDisambiguation.php b/repo/includes/Specials/SpecialItemDisambiguation.php index 1ab9375..dcaa27f 100644 --- a/repo/includes/Specials/SpecialItemDisambiguation.php +++ b/repo/includes/Specials/SpecialItemDisambiguation.php @@ -221,7 +221,7 @@ class SpecialItemDisambiguation extends SpecialWikibasePage { ) ) ->setWrapperLegendMsg( 'wikibase-itemdisambiguation-lookup-fieldset' ) ->suppressDefaultSubmit() - ->setSubmitCallback( function () {// no-op + ->setSubmitCallback( static function () {// no-op } )->show(); } diff --git a/repo/includes/Specials/SpecialListProperties.php b/repo/includes/Specials/SpecialListProperties.php index 539bff6..725c7a7 100644 --- a/repo/includes/Specials/SpecialListProperties.php +++ b/repo/includes/Specials/SpecialListProperties.php @@ -146,7 +146,7 @@ class SpecialListProperties extends SpecialWikibaseQueryPage { ->setMethod( 'get' ) ->setWrapperLegendMsg( 'wikibase-listproperties-legend' ) ->suppressDefaultSubmit() - ->setSubmitCallback( function () { + ->setSubmitCallback( static function () { } ) ->show(); } diff --git a/repo/includes/Specials/SpecialMergeItems.php b/repo/includes/Specials/SpecialMergeItems.php index 5121d87..6a90e15 100644 --- a/repo/includes/Specials/SpecialMergeItems.php +++ b/repo/includes/Specials/SpecialMergeItems.php @@ -245,7 +245,7 @@ class SpecialMergeItems extends SpecialWikibasePage { ->setSubmitName( 'wikibase-mergeitems-submit' ) ->setSubmitTextMsg( 'wikibase-mergeitems-submit' ) ->setWrapperLegendMsg( 'special-mergeitems' ) - ->setSubmitCallback( function () {// no-op + ->setSubmitCallback( static function () {// no-op } )->show(); } diff --git a/repo/includes/Specials/SpecialModifyEntity.php b/repo/includes/Specials/SpecialModifyEntity.php index add8956..4ce6202 100644 --- a/repo/includes/Specials/SpecialModifyEntity.php +++ b/repo/includes/Specials/SpecialModifyEntity.php @@ -299,7 +299,7 @@ abstract class SpecialModifyEntity extends SpecialWikibaseRepoPage { ->setSubmitName( $submitKey ) ->setSubmitTextMsg( $submitKey ) ->setWrapperLegendMsg( $this->getDescription() ) - ->setSubmitCallback( function () { + ->setSubmitCallback( static function () { // no-op } )->show(); } diff --git a/repo/includes/Specials/SpecialRedirectEntity.php b/repo/includes/Specials/SpecialRedirectEntity.php index efb2b49..21b6e23 100644 --- a/repo/includes/Specials/SpecialRedirectEntity.php +++ b/repo/includes/Specials/SpecialRedirectEntity.php @@ -172,7 +172,7 @@ class SpecialRedirectEntity extends SpecialWikibasePage { ->setSubmitName( 'wikibase-redirectentity-submit' ) ->setSubmitTextMsg( 'wikibase-redirectentity-submit' ) ->setWrapperLegendMsg( 'special-redirectentity' ) - ->setSubmitCallback( function () {// no-op + ->setSubmitCallback( static function () {// no-op } )->show(); } diff --git a/repo/includes/Specials/SpecialSetSiteLink.php b/repo/includes/Specials/SpecialSetSiteLink.php index f2949be..9f1a35f 100644 --- a/repo/includes/Specials/SpecialSetSiteLink.php +++ b/repo/includes/Specials/SpecialSetSiteLink.php @@ -372,7 +372,7 @@ class SpecialSetSiteLink extends SpecialModifyEntity { /** @var ItemId[] $badgeItemIds */ $badgeItemIds = array_map( - function( $badgeId ) { + static function( $badgeId ) { return new ItemId( $badgeId ); }, array_keys( $this->badgeItems ) @@ -436,7 +436,7 @@ class SpecialSetSiteLink extends SpecialModifyEntity { } return array_map( - function( ItemId $badge ) { + static function( ItemId $badge ) { return $badge->getSerialization(); }, $item->getSiteLinkList()->getBySiteId( $siteId )->getBadges() diff --git a/repo/includes/Store/Sql/DatabaseSchemaUpdater.php b/repo/includes/Store/Sql/DatabaseSchemaUpdater.php index 8506b03..0b04b45 100644 --- a/repo/includes/Store/Sql/DatabaseSchemaUpdater.php +++ b/repo/includes/Store/Sql/DatabaseSchemaUpdater.php @@ -190,7 +190,7 @@ class DatabaseSchemaUpdater implements LoadExtensionSchemaUpdatesHook { ); $reporter = new ObservableMessageReporter(); $reporter->registerReporterCallback( - function ( $msg ) use ( $updater ) { + static function ( $msg ) use ( $updater ) { $updater->output( "..." . $msg . "\n" ); } ); @@ -225,7 +225,7 @@ class DatabaseSchemaUpdater implements LoadExtensionSchemaUpdatesHook { } $reporter = new ObservableMessageReporter(); $reporter->registerReporterCallback( - function ( $msg ) use ( $updater ) { + static function ( $msg ) use ( $updater ) { $updater->output( "..." . $msg . "\n" ); } ); @@ -306,7 +306,7 @@ class DatabaseSchemaUpdater implements LoadExtensionSchemaUpdatesHook { ); $reporter = new ObservableMessageReporter(); - $reporter->registerReporterCallback( function( $msg ) use ( $dbUpdater ) { + $reporter->registerReporterCallback( static function( $msg ) use ( $dbUpdater ) { $dbUpdater->output( "\t$msg\n" ); } ); $primer->setProgressReporter( $reporter ); diff --git a/repo/includes/SummaryFormatter.php b/repo/includes/SummaryFormatter.php index 5049581..344d00c 100644 --- a/repo/includes/SummaryFormatter.php +++ b/repo/includes/SummaryFormatter.php @@ -133,7 +133,7 @@ class SummaryFormatter { } else { $parts = array_filter( $parts, - function ( $arg ) { + static function ( $arg ) { return $arg !== ''; } ); diff --git a/repo/includes/WikibasePingback.php b/repo/includes/WikibasePingback.php index 7b0cb0d..4074d71 100644 --- a/repo/includes/WikibasePingback.php +++ b/repo/includes/WikibasePingback.php @@ -218,7 +218,7 @@ class WikibasePingback { $currentExtensions = array_keys( $this->extensionRegistry->getAllThings() ); - return array_reduce( $currentExtensions, function ( $tracked, $current ) use ( $extensions ) { + return array_reduce( $currentExtensions, static function ( $tracked, $current ) use ( $extensions ) { return array_key_exists( $current, $extensions ) ? array_merge( $tracked, [ $extensions[ $current ] ] ) : $tracked; @@ -368,7 +368,7 @@ class WikibasePingback { * sent and (if so) proceed to send it. */ public static function schedulePingback() { - DeferredUpdates::addCallableUpdate( function () { + DeferredUpdates::addCallableUpdate( static function () { WikibasePingback::doSchedule(); } ); } diff --git a/repo/maintenance/DumpEntities.php b/repo/maintenance/DumpEntities.php index 60ab8aa..8efa950 100644 --- a/repo/maintenance/DumpEntities.php +++ b/repo/maintenance/DumpEntities.php @@ -252,7 +252,7 @@ abstract class DumpEntities extends Maintenance { return; } - $settingsBuilder->registerHookHandlers( [ 'MediaWikiServices' => [ function() { + $settingsBuilder->registerHookHandlers( [ 'MediaWikiServices' => [ static function() { global $wgDBDefaultGroup; if ( !ExtensionRegistry::getInstance()->isLoaded( 'WikibaseRepository' ) ) { // Something instantiates the MediaWikiServices before Wikibase diff --git a/repo/maintenance/ResubmitChanges.php b/repo/maintenance/ResubmitChanges.php index 53b2c25..e10f7fa 100644 --- a/repo/maintenance/ResubmitChanges.php +++ b/repo/maintenance/ResubmitChanges.php @@ -59,7 +59,7 @@ class ResubmitChanges extends Maintenance { } private function makeChangesIntoJobs( array $changes ): array { - return array_map( function ( EntityChange $change ): IJobSpecification { + return array_map( static function ( EntityChange $change ): IJobSpecification { return DispatchChangesJob::makeJobSpecification( $change->getEntityId()->getSerialization() ); }, $changes ); } diff --git a/repo/maintenance/addUnitConversions.php b/repo/maintenance/addUnitConversions.php index 05b513a..271fd06 100644 --- a/repo/maintenance/addUnitConversions.php +++ b/repo/maintenance/addUnitConversions.php @@ -278,7 +278,7 @@ QUERY; * @param string[] $map Map old id -> normalized id */ private function processStatements( $values, $map ) { - $shortValues = array_map( function ( $str ) { + $shortValues = array_map( static function ( $str ) { return 'wdv:' . $str; }, $values ); $valuesStr = implode( ' ', $shortValues ); diff --git a/repo/maintenance/searchEntities.php b/repo/maintenance/searchEntities.php index 981003b..1d35d74 100644 --- a/repo/maintenance/searchEntities.php +++ b/repo/maintenance/searchEntities.php @@ -140,7 +140,7 @@ class SearchEntities extends Maintenance { */ private function getSearchHelper( $engine ) { $engines = [ - 'sql' => function() { + 'sql' => static function() { return WikibaseRepo::getEntitySearchHelper(); }, ]; diff --git a/repo/maintenance/updateUnits.php b/repo/maintenance/updateUnits.php index 1749223..ceeb27c 100644 --- a/repo/maintenance/updateUnits.php +++ b/repo/maintenance/updateUnits.php @@ -131,7 +131,7 @@ class UpdateUnits extends Maintenance { // Sort units by Q-id, as number, to have predictable order uksort( $convertUnits, - function ( $x, $y ) { + static function ( $x, $y ) { return (int)substr( $x, 1 ) - (int)substr( $y, 1 ); } ); diff --git a/repo/resources/Resources.php b/repo/resources/Resources.php index 9b4d57c..c5cb68b 100644 --- a/repo/resources/Resources.php +++ b/repo/resources/Resources.php @@ -17,7 +17,7 @@ use Wikibase\Repo\WikibaseRepo; * * @codeCoverageIgnoreStart */ -return call_user_func( function() { +return call_user_func( static function() { $moduleTemplate = [ 'localBasePath' => __DIR__, 'remoteExtPath' => 'Wikibase/repo/resources', @@ -93,7 +93,7 @@ return call_user_func( function() { 'mw.config.values.wbDataTypes' => $moduleTemplate + [ 'class' => DataTypesModule::class, - 'datatypefactory' => function() { + 'datatypefactory' => static function() { return WikibaseRepo::getDataTypeFactory(); }, 'datatypesconfigvarname' => 'wbDataTypes', @@ -102,7 +102,7 @@ return call_user_func( function() { // Temporary, see: T199197 'mw.config.values.wbRefTabsEnabled' => $moduleTemplate + [ 'class' => MediaWikiConfigModule::class, - 'getconfigvalueprovider' => function () { + 'getconfigvalueprovider' => static function () { return new SettingsValueProvider( WikibaseRepo::getSettings(), 'wbRefTabsEnabled', @@ -113,7 +113,7 @@ return call_user_func( function() { 'mw.config.values.wbEnableMulLanguageCode' => $moduleTemplate + [ 'class' => MediaWikiConfigModule::class, - 'getconfigvalueprovider' => function () { + 'getconfigvalueprovider' => static function () { return new SettingsValueProvider( WikibaseRepo::getSettings(), 'wbEnableMulLanguageCode', @@ -125,7 +125,7 @@ return call_user_func( function() { // Temporary, see: T339104, to be removed in T330217 'mw.config.values.wbTmpAlwaysShowMulLanguageCode' => $moduleTemplate + [ 'class' => MediaWikiConfigModule::class, - 'getconfigvalueprovider' => function () { + 'getconfigvalueprovider' => static function () { return new SettingsValueProvider( WikibaseRepo::getSettings(), 'wbTmpAlwaysShowMulLanguageCode', @@ -150,7 +150,7 @@ return call_user_func( function() { [ "name" => "config.json", - "callback" => function () { + "callback" => static function () { return [ 'entityTypes' => WikibaseRepo::getEntityTypesConfigValue(), ]; @@ -168,7 +168,7 @@ return call_user_func( function() { 'wikibase.getUserLanguages.js', [ 'name' => 'termLanguages.json', - 'callback' => function () { + 'callback' => static function () { return WikibaseRepo::getTermsLanguages()->getLanguages(); }, ], @@ -213,7 +213,7 @@ return call_user_func( function() { 'repo/resources/wikibase.PropertyDataTypeStore.js', [ "name" => "repo/resources/config.json", - "callback" => function () { + "callback" => static function () { $settings = WikibaseRepo::getSettings(); $tempUserEnabled = MediaWikiServices::getInstance()->getTempUserConfig()->isEnabled(); $dataTypeDefinitions = WikibaseRepo::getDataTypeDefinitions(); @@ -326,7 +326,7 @@ return call_user_func( function() { ], 'wikibase.experts.modules' => $moduleTemplate + [ - 'factory' => function () { + 'factory' => static function () { return WikibaseRepo::getPropertyValueExpertsModule(); }, ], @@ -347,7 +347,7 @@ return call_user_func( function() { 'wikibase.federatedPropertiesLeavingSiteNotice.js', [ 'name' => 'federatedPropertiesHostWikibase.json', - 'callback' => function () { + 'callback' => static function () { return parse_url( WikibaseRepo::getSettings()->getSetting( 'federatedPropertiesSourceScriptUrl' ), PHP_URL_HOST diff --git a/repo/rest-api/src/Application/UseCases/PatchItem/PatchedItemValidator.php b/repo/rest-api/src/Application/UseCases/PatchItem/PatchedItemValidator.php index 3078db4..f5d9d9e 100644 --- a/repo/rest-api/src/Application/UseCases/PatchItem/PatchedItemValidator.php +++ b/repo/rest-api/src/Application/UseCases/PatchItem/PatchedItemValidator.php @@ -286,7 +286,7 @@ class PatchedItemValidator { private function getModifiedSitelinksSites( Sitelinks $originalSitelinks, array $patchedSitelinks ): array { return array_filter( array_keys( $patchedSitelinks ), - function( string $siteId ) use ( $patchedSitelinks, $originalSitelinks ) { + static function( string $siteId ) use ( $patchedSitelinks, $originalSitelinks ) { $originalBadges = fn() => array_map( fn( ItemId $i ) => (string)$i, $originalSitelinks[$siteId]->getBadges() ); return !isset( $originalSitelinks[$siteId] ) diff --git a/repo/rest-api/src/Infrastructure/DataAccess/WikibaseEntityRevisionLookupPropertyRevisionMetadataRetriever.php b/repo/rest-api/src/Infrastructure/DataAccess/WikibaseEntityRevisionLookupPropertyRevisionMetadataRetriever.php index 5d93f29..ad45d58 100644 --- a/repo/rest-api/src/Infrastructure/DataAccess/WikibaseEntityRevisionLookupPropertyRevisionMetadataRetriever.php +++ b/repo/rest-api/src/Infrastructure/DataAccess/WikibaseEntityRevisionLookupPropertyRevisionMetadataRetriever.php @@ -24,7 +24,7 @@ class WikibaseEntityRevisionLookupPropertyRevisionMetadataRetriever implements P ->onConcreteRevision( fn( $id, $timestamp ) => MetadataResult::concreteRevision( $id, $timestamp ) ) ->onRedirect( /** @return never */ - function (): void { + static function (): void { throw new LogicException( 'Properties cannot be redirected' ); } )->onNonexistentEntity( fn() => MetadataResult::propertyNotFound() ) diff --git a/repo/rest-api/src/WbRestApi.ServiceWiring.php b/repo/rest-api/src/WbRestApi.ServiceWiring.php index 49235fe..d8ea4f4 100644 --- a/repo/rest-api/src/WbRestApi.ServiceWiring.php +++ b/repo/rest-api/src/WbRestApi.ServiceWiring.php @@ -199,17 +199,17 @@ use Wikibase\Repo\WikibaseRepo; return [ VRD::ALIAS_LANGUAGE_CODE_REQUEST_VALIDATING_DESERIALIZER => - function ( MediaWikiServices $services ): LanguageCodeRequestValidatingDeserializer { + static function ( MediaWikiServices $services ): LanguageCodeRequestValidatingDeserializer { return new LanguageCodeRequestValidatingDeserializer( WbRestApi::getAliasLanguageCodeValidator( $services ) ); }, VRD::DESCRIPTION_LANGUAGE_CODE_REQUEST_VALIDATING_DESERIALIZER => - function ( MediaWikiServices $services ): LanguageCodeRequestValidatingDeserializer { + static function ( MediaWikiServices $services ): LanguageCodeRequestValidatingDeserializer { return new LanguageCodeRequestValidatingDeserializer( WbRestApi::getDescriptionLanguageCodeValidator( $services ) ); }, VRD::EDIT_METADATA_REQUEST_VALIDATING_DESERIALIZER => - function ( MediaWikiServices $services ): EditMetadataRequestValidatingDeserializer { + static function ( MediaWikiServices $services ): EditMetadataRequestValidatingDeserializer { return new EditMetadataRequestValidatingDeserializer( new EditMetadataValidator( CommentStore::COMMENT_CHARACTER_LIMIT, @@ -219,7 +219,7 @@ return [ }, VRD::ITEM_ALIASES_IN_LANGUAGE_EDIT_REQUEST_VALIDATING_DESERIALIZER => - function ( MediaWikiServices $services ): ItemAliasesInLanguageEditRequestValidatingDeserializer { + static function ( MediaWikiServices $services ): ItemAliasesInLanguageEditRequestValidatingDeserializer { return new ItemAliasesInLanguageEditRequestValidatingDeserializer( new AliasesInLanguageDeserializer(), new TermValidatorFactoryAliasesInLanguageValidator( WikibaseRepo::getTermValidatorFactory( $services ) ) @@ -227,7 +227,7 @@ return [ }, VRD::ITEM_DESCRIPTION_EDIT_REQUEST_VALIDATING_DESERIALIZER => - function ( MediaWikiServices $services ): ItemDescriptionEditRequestValidatingDeserializer { + static function ( MediaWikiServices $services ): ItemDescriptionEditRequestValidatingDeserializer { return new ItemDescriptionEditRequestValidatingDeserializer( new TermValidatorFactoryItemDescriptionValidator( WikibaseRepo::getTermValidatorFactory( $services ), @@ -237,19 +237,19 @@ return [ ); }, - VRD::ITEM_FIELDS_REQUEST_VALIDATING_DESERIALIZER => function (): MappedRequestValidatingDeserializer { + VRD::ITEM_FIELDS_REQUEST_VALIDATING_DESERIALIZER => static function (): MappedRequestValidatingDeserializer { $fieldsValidator = new FieldsFilterValidatingDeserializer( ItemParts::VALID_FIELDS ); return new MappedRequestValidatingDeserializer( fn( ItemFieldsRequest $r ) => $fieldsValidator->validateAndDeserialize( $r->getItemFields() ) ); }, - VRD::ITEM_ID_REQUEST_VALIDATING_DESERIALIZER => function(): ItemIdRequestValidatingDeserializer { + VRD::ITEM_ID_REQUEST_VALIDATING_DESERIALIZER => static function(): ItemIdRequestValidatingDeserializer { return new ItemIdRequestValidatingDeserializer(); }, VRD::ITEM_LABEL_EDIT_REQUEST_VALIDATING_DESERIALIZER => - function ( MediaWikiServices $services ): ItemLabelEditRequestValidatingDeserializer { + static function ( MediaWikiServices $services ): ItemLabelEditRequestValidatingDeserializer { return new ItemLabelEditRequestValidatingDeserializer( new TermValidatorFactoryItemLabelValidator( WikibaseRepo::getTermValidatorFactory( $services ), @@ -260,7 +260,7 @@ return [ }, VRD::ITEM_SERIALIZATION_REQUEST_VALIDATING_DESERIALIZER => - function( MediaWikiServices $services ): ItemSerializationRequestValidatingDeserializer { + static function( MediaWikiServices $services ): ItemSerializationRequestValidatingDeserializer { return new ItemSerializationRequestValidatingDeserializer( new ItemValidator( new LabelsSyntaxValidator( @@ -302,21 +302,21 @@ return [ ); }, - VRD::ITEM_STATEMENT_ID_REQUEST_VALIDATOR => function (): ItemStatementIdRequestValidator { + VRD::ITEM_STATEMENT_ID_REQUEST_VALIDATOR => static function (): ItemStatementIdRequestValidator { return new ItemStatementIdRequestValidator(); }, VRD::LABEL_LANGUAGE_CODE_REQUEST_VALIDATING_DESERIALIZER => - function ( MediaWikiServices $services ): LanguageCodeRequestValidatingDeserializer { + static function ( MediaWikiServices $services ): LanguageCodeRequestValidatingDeserializer { return new LanguageCodeRequestValidatingDeserializer( WbRestApi::getLabelLanguageCodeValidator( $services ) ); }, - VRD::PATCH_REQUEST_VALIDATING_DESERIALIZER => function (): PatchRequestValidatingDeserializer { + VRD::PATCH_REQUEST_VALIDATING_DESERIALIZER => static function (): PatchRequestValidatingDeserializer { return new PatchRequestValidatingDeserializer( new JsonDiffJsonPatchValidator() ); }, VRD::PROPERTY_ALIASES_IN_LANGUAGE_EDIT_REQUEST_VALIDATING_DESERIALIZER => - function ( MediaWikiServices $services ): PropertyAliasesInLanguageEditRequestValidatingDeserializer { + static function ( MediaWikiServices $services ): PropertyAliasesInLanguageEditRequestValidatingDeserializer { return new PropertyAliasesInLanguageEditRequestValidatingDeserializer( new AliasesInLanguageDeserializer(), new TermValidatorFactoryAliasesInLanguageValidator( WikibaseRepo::getTermValidatorFactory( $services ) ) @@ -324,21 +324,21 @@ return [ }, VRD::PROPERTY_DESCRIPTION_EDIT_REQUEST_VALIDATING_DESERIALIZER => - function ( MediaWikiServices $services ): PropertyDescriptionEditRequestValidatingDeserializer { + static function ( MediaWikiServices $services ): PropertyDescriptionEditRequestValidatingDeserializer { return new PropertyDescriptionEditRequestValidatingDeserializer( new TermValidatorFactoryPropertyDescriptionValidator( WikibaseRepo::getTermValidatorFactory( $services ) ), WbRestApi::getPropertyDataRetriever( $services ) ); }, - VRD::PROPERTY_FIELDS_REQUEST_VALIDATING_DESERIALIZER => function (): MappedRequestValidatingDeserializer { + VRD::PROPERTY_FIELDS_REQUEST_VALIDATING_DESERIALIZER => static function (): MappedRequestValidatingDeserializer { $fieldsValidator = new FieldsFilterValidatingDeserializer( PropertyParts::VALID_FIELDS ); return new MappedRequestValidatingDeserializer( fn( PropertyFieldsRequest $r ) => $fieldsValidator->validateAndDeserialize( $r->getPropertyFields() ) ); }, - VRD::PROPERTY_ID_FILTER_REQUEST_VALIDATING_DESERIALIZER => function(): MappedRequestValidatingDeserializer { + VRD::PROPERTY_ID_FILTER_REQUEST_VALIDATING_DESERIALIZER => static function(): MappedRequestValidatingDeserializer { $propertyIdFilterValidatingDeserializer = new PropertyIdFilterValidatingDeserializer( new PropertyIdValidator() ); return new MappedRequestValidatingDeserializer( fn( PropertyIdFilterRequest $r ) => $r->getPropertyIdFilter() === null @@ -348,7 +348,7 @@ return [ ); }, - VRD::PROPERTY_ID_REQUEST_VALIDATING_DESERIALIZER => function(): MappedRequestValidatingDeserializer { + VRD::PROPERTY_ID_REQUEST_VALIDATING_DESERIALIZER => static function(): MappedRequestValidatingDeserializer { $propertyIdValidatingDeserializer = new PropertyIdValidatingDeserializer( new PropertyIdValidator() ); return new MappedRequestValidatingDeserializer( fn( PropertyIdRequest $r ) => $propertyIdValidatingDeserializer->validateAndDeserialize( $r->getPropertyId() ) @@ -356,7 +356,7 @@ return [ }, VRD::PROPERTY_LABEL_EDIT_REQUEST_VALIDATING_DESERIALIZER => - function ( MediaWikiServices $services ): PropertyLabelEditRequestValidatingDeserializer { + static function ( MediaWikiServices $services ): PropertyLabelEditRequestValidatingDeserializer { return new PropertyLabelEditRequestValidatingDeserializer( new TermValidatorFactoryPropertyLabelValidator( WikibaseRepo::getTermValidatorFactory( $services ), @@ -366,12 +366,12 @@ return [ ); }, - VRD::PROPERTY_STATEMENT_ID_REQUEST_VALIDATOR => function (): PropertyStatementIdRequestValidator { + VRD::PROPERTY_STATEMENT_ID_REQUEST_VALIDATOR => static function (): PropertyStatementIdRequestValidator { return new PropertyStatementIdRequestValidator(); }, VRD::SITELINK_EDIT_REQUEST_VALIDATING_DESERIALIZER => - function( MediaWikiServices $services ): SitelinkEditRequestValidatingDeserializer { + static function( MediaWikiServices $services ): SitelinkEditRequestValidatingDeserializer { return new SitelinkEditRequestValidatingDeserializer( new SiteLinkLookupSitelinkValidator( WbRestApi::getSitelinkDeserializer( $services ), @@ -381,7 +381,7 @@ return [ }, VRD::SITE_ID_REQUEST_VALIDATING_DESERIALIZER => - function ( MediaWikiServices $services ): SiteIdRequestValidatingDeserializer { + static function ( MediaWikiServices $services ): SiteIdRequestValidatingDeserializer { return new SiteIdRequestValidatingDeserializer( new SiteIdValidator( WikibaseRepo::getSiteLinkGlobalIdentifiersProvider( $services )->getList( WikibaseRepo::getSettings( $services )->getSetting( 'siteLinkGroups' ) @@ -389,7 +389,7 @@ return [ ); }, - VRD::STATEMENT_ID_REQUEST_VALIDATING_DESERIALIZER => function(): StatementIdRequestValidatingDeserializer { + VRD::STATEMENT_ID_REQUEST_VALIDATING_DESERIALIZER => static function(): StatementIdRequestValidatingDeserializer { $entityIdParser = new BasicEntityIdParser(); return new StatementIdRequestValidatingDeserializer( @@ -399,13 +399,13 @@ return [ }, VRD::STATEMENT_SERIALIZATION_REQUEST_VALIDATING_DESERIALIZER => - function ( MediaWikiServices $services ): StatementSerializationRequestValidatingDeserializer { + static function ( MediaWikiServices $services ): StatementSerializationRequestValidatingDeserializer { return new StatementSerializationRequestValidatingDeserializer( new StatementValidator( WbRestApi::getStatementDeserializer( $services ) ) ); }, - 'WbRestApi.AddItemAliasesInLanguage' => function( MediaWikiServices $services ): AddItemAliasesInLanguage { + 'WbRestApi.AddItemAliasesInLanguage' => static function( MediaWikiServices $services ): AddItemAliasesInLanguage { return new AddItemAliasesInLanguage( WbRestApi::getItemDataRetriever( $services ), WbRestApi::getAssertItemExists( $services ), @@ -415,7 +415,7 @@ return [ ); }, - 'WbRestApi.AddItemStatement' => function( MediaWikiServices $services ): AddItemStatement { + 'WbRestApi.AddItemStatement' => static function( MediaWikiServices $services ): AddItemStatement { return new AddItemStatement( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertItemExists( $services ), @@ -426,7 +426,7 @@ return [ ); }, - 'WbRestApi.AddPropertyAliasesInLanguage' => function( MediaWikiServices $services ): AddPropertyAliasesInLanguage { + 'WbRestApi.AddPropertyAliasesInLanguage' => static function( MediaWikiServices $services ): AddPropertyAliasesInLanguage { return new AddPropertyAliasesInLanguage( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertPropertyExists( $services ), @@ -436,7 +436,7 @@ return [ ); }, - 'WbRestApi.AddPropertyStatement' => function( MediaWikiServices $services ): AddPropertyStatement { + 'WbRestApi.AddPropertyStatement' => static function( MediaWikiServices $services ): AddPropertyStatement { $statementReadModelConverter = new StatementReadModelConverter( WikibaseRepo::getStatementGuidParser( $services ), WikibaseRepo::getPropertyDataTypeLookup( $services ) @@ -459,23 +459,23 @@ return [ ); }, - 'WbRestApi.AliasLanguageCodeValidator' => function( MediaWikiServices $services ): AliasLanguageCodeValidator { + 'WbRestApi.AliasLanguageCodeValidator' => static function( MediaWikiServices $services ): AliasLanguageCodeValidator { return new ValueValidatorLanguageCodeValidator( WikibaseRepo::getTermValidatorFactory( $services )->getAliasLanguageValidator() ); }, - 'WbRestApi.AssertItemExists' => function( MediaWikiServices $services ): AssertItemExists { + 'WbRestApi.AssertItemExists' => static function( MediaWikiServices $services ): AssertItemExists { return new AssertItemExists( WbRestApi::getGetLatestItemRevisionMetadata( $services ) ); }, - 'WbRestApi.AssertPropertyExists' => function( MediaWikiServices $services ): AssertPropertyExists { + 'WbRestApi.AssertPropertyExists' => static function( MediaWikiServices $services ): AssertPropertyExists { return new AssertPropertyExists( WbRestApi::getGetLatestPropertyRevisionMetadata( $services ) ); }, - 'WbRestApi.AssertStatementSubjectExists' => function( MediaWikiServices $services ): AssertStatementSubjectExists { + 'WbRestApi.AssertStatementSubjectExists' => static function( MediaWikiServices $services ): AssertStatementSubjectExists { return new AssertStatementSubjectExists( WbRestApi::getGetLatestStatementSubjectRevisionMetadata( $services ) ); }, - 'WbRestApi.AssertUserIsAuthorized' => function( MediaWikiServices $services ): AssertUserIsAuthorized { + 'WbRestApi.AssertUserIsAuthorized' => static function( MediaWikiServices $services ): AssertUserIsAuthorized { return new AssertUserIsAuthorized( new WikibaseEntityPermissionChecker( WikibaseRepo::getEntityPermissionChecker( $services ), @@ -484,7 +484,7 @@ return [ ); }, - 'WbRestApi.CreateItem' => function( MediaWikiServices $services ): CreateItem { + 'WbRestApi.CreateItem' => static function( MediaWikiServices $services ): CreateItem { return new CreateItem( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getItemUpdater( $services ), @@ -492,7 +492,7 @@ return [ ); }, - 'WbRestApi.CreateProperty' => function( MediaWikiServices $services ): CreateProperty { + 'WbRestApi.CreateProperty' => static function( MediaWikiServices $services ): CreateProperty { return new CreateProperty( new CreatePropertyValidator( WbRestApi::getEditMetadataRequestValidatingDeserializer( $services ), @@ -526,13 +526,13 @@ return [ ); }, - 'WbRestApi.DescriptionLanguageCodeValidator' => function( MediaWikiServices $services ): DescriptionLanguageCodeValidator { + 'WbRestApi.DescriptionLanguageCodeValidator' => static function( MediaWikiServices $services ): DescriptionLanguageCodeValidator { return new ValueValidatorLanguageCodeValidator( WikibaseRepo::getTermValidatorFactory( $services )->getDescriptionLanguageValidator() ); }, - 'WbRestApi.EntityUpdater' => function( MediaWikiServices $services ): EntityUpdater { + 'WbRestApi.EntityUpdater' => static function( MediaWikiServices $services ): EntityUpdater { return new EntityUpdater( RequestContext::getMain(), WikibaseRepo::getEditEntityFactory( $services ), @@ -549,11 +549,11 @@ return [ ); }, - 'WbRestApi.ErrorReporter' => function( MediaWikiServices $services ): ErrorReporter { + 'WbRestApi.ErrorReporter' => static function( MediaWikiServices $services ): ErrorReporter { return new MWErrorReporter(); }, - 'WbRestApi.GetItem' => function( MediaWikiServices $services ): GetItem { + 'WbRestApi.GetItem' => static function( MediaWikiServices $services ): GetItem { return new GetItem( WbRestApi::getGetLatestItemRevisionMetadata( $services ), WbRestApi::getItemDataRetriever( $services ), @@ -561,7 +561,7 @@ return [ ); }, - 'WbRestApi.GetItemAliases' => function( MediaWikiServices $services ): GetItemAliases { + 'WbRestApi.GetItemAliases' => static function( MediaWikiServices $services ): GetItemAliases { return new GetItemAliases( WbRestApi::getGetLatestItemRevisionMetadata( $services ), new PrefetchingTermLookupAliasesRetriever( @@ -572,7 +572,7 @@ return [ ); }, - 'WbRestApi.GetItemAliasesInLanguage' => function( MediaWikiServices $services ): GetItemAliasesInLanguage { + 'WbRestApi.GetItemAliasesInLanguage' => static function( MediaWikiServices $services ): GetItemAliasesInLanguage { return new GetItemAliasesInLanguage( WbRestApi::getGetLatestItemRevisionMetadata( $services ), new PrefetchingTermLookupAliasesRetriever( @@ -583,7 +583,7 @@ return [ ); }, - 'WbRestApi.GetItemDescription' => function( MediaWikiServices $services ): GetItemDescription { + 'WbRestApi.GetItemDescription' => static function( MediaWikiServices $services ): GetItemDescription { return new GetItemDescription( WbRestApi::getGetLatestItemRevisionMetadata( $services ), WbRestApi::getTermLookupEntityTermsRetriever( $services ), @@ -591,7 +591,7 @@ return [ ); }, - 'WbRestApi.GetItemDescriptions' => function( MediaWikiServices $services ): GetItemDescriptions { + 'WbRestApi.GetItemDescriptions' => static function( MediaWikiServices $services ): GetItemDescriptions { return new GetItemDescriptions( WbRestApi::getGetLatestItemRevisionMetadata( $services ), WbRestApi::getTermLookupEntityTermsRetriever( $services ), @@ -599,7 +599,7 @@ return [ ); }, - 'WbRestApi.GetItemDescriptionWithFallback' => function( MediaWikiServices $services ): GetItemDescriptionWithFallback { + 'WbRestApi.GetItemDescriptionWithFallback' => static function( MediaWikiServices $services ): GetItemDescriptionWithFallback { return new GetItemDescriptionWithFallback( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getGetLatestItemRevisionMetadata( $services ), @@ -610,7 +610,7 @@ return [ ); }, - 'WbRestApi.GetItemLabel' => function( MediaWikiServices $services ): GetItemLabel { + 'WbRestApi.GetItemLabel' => static function( MediaWikiServices $services ): GetItemLabel { return new GetItemLabel( WbRestApi::getGetLatestItemRevisionMetadata( $services ), WbRestApi::getTermLookupEntityTermsRetriever( $services ), @@ -618,7 +618,7 @@ return [ ); }, - 'WbRestApi.GetItemLabels' => function( MediaWikiServices $services ): GetItemLabels { + 'WbRestApi.GetItemLabels' => static function( MediaWikiServices $services ): GetItemLabels { return new GetItemLabels( WbRestApi::getGetLatestItemRevisionMetadata( $services ), WbRestApi::getTermLookupEntityTermsRetriever( $services ), @@ -626,7 +626,7 @@ return [ ); }, - 'WbRestApi.GetItemLabelWithFallback' => function( MediaWikiServices $services ): GetItemLabelWithFallback { + 'WbRestApi.GetItemLabelWithFallback' => static function( MediaWikiServices $services ): GetItemLabelWithFallback { return new GetItemLabelWithFallback( WbRestApi::getGetLatestItemRevisionMetadata( $services ), new FallbackLookupFactoryTermsRetriever( @@ -637,7 +637,7 @@ return [ ); }, - 'WbRestApi.GetItemStatement' => function( MediaWikiServices $services ): GetItemStatement { + 'WbRestApi.GetItemStatement' => static function( MediaWikiServices $services ): GetItemStatement { return new GetItemStatement( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertItemExists( $services ), @@ -645,7 +645,7 @@ return [ ); }, - 'WbRestApi.GetItemStatements' => function( MediaWikiServices $services ): GetItemStatements { + 'WbRestApi.GetItemStatements' => static function( MediaWikiServices $services ): GetItemStatements { return new GetItemStatements( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getItemDataRetriever( $services ), @@ -653,19 +653,19 @@ return [ ); }, - 'WbRestApi.GetLatestItemRevisionMetadata' => function( MediaWikiServices $services ): GetLatestItemRevisionMetadata { + 'WbRestApi.GetLatestItemRevisionMetadata' => static function( MediaWikiServices $services ): GetLatestItemRevisionMetadata { return new GetLatestItemRevisionMetadata( new WikibaseEntityRevisionLookupItemRevisionMetadataRetriever( WikibaseRepo::getEntityRevisionLookup( $services ) ) ); }, - 'WbRestApi.GetLatestPropertyRevisionMetadata' => function( MediaWikiServices $services ): GetLatestPropertyRevisionMetadata { + 'WbRestApi.GetLatestPropertyRevisionMetadata' => static function( MediaWikiServices $services ): GetLatestPropertyRevisionMetadata { return new GetLatestPropertyRevisionMetadata( new WikibaseEntityRevisionLookupPropertyRevisionMetadataRetriever( WikibaseRepo::getEntityRevisionLookup( $services ) ) ); }, - 'WbRestApi.GetLatestStatementSubjectRevisionMetadata' => function( + 'WbRestApi.GetLatestStatementSubjectRevisionMetadata' => static function( MediaWikiServices $services ): GetLatestStatementSubjectRevisionMetadata { return new GetLatestStatementSubjectRevisionMetadata( new WikibaseEntityRevisionLookupStatementSubjectRevisionMetadataRetriever( @@ -673,7 +673,7 @@ return [ ) ); }, - 'WbRestApi.GetProperty' => function( MediaWikiServices $services ): GetProperty { + 'WbRestApi.GetProperty' => static function( MediaWikiServices $services ): GetProperty { return new GetProperty( WbRestApi::getGetLatestPropertyRevisionMetadata( $services ), WbRestApi::getPropertyDataRetriever( $services ), @@ -681,7 +681,7 @@ return [ ); }, - 'WbRestApi.GetPropertyAliases' => function( MediaWikiServices $services ): GetPropertyAliases { + 'WbRestApi.GetPropertyAliases' => static function( MediaWikiServices $services ): GetPropertyAliases { return new GetPropertyAliases( WbRestApi::getGetLatestPropertyRevisionMetadata( $services ), new PrefetchingTermLookupAliasesRetriever( @@ -692,7 +692,7 @@ return [ ); }, - 'WbRestApi.GetPropertyAliasesInLanguage' => function( MediaWikiServices $services ): GetPropertyAliasesInLanguage { + 'WbRestApi.GetPropertyAliasesInLanguage' => static function( MediaWikiServices $services ): GetPropertyAliasesInLanguage { return new GetPropertyAliasesInLanguage( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getGetLatestPropertyRevisionMetadata( $services ), @@ -703,7 +703,7 @@ return [ ); }, - 'WbRestApi.GetPropertyDescription' => function( MediaWikiServices $services ): GetPropertyDescription { + 'WbRestApi.GetPropertyDescription' => static function( MediaWikiServices $services ): GetPropertyDescription { return new GetPropertyDescription( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getGetLatestPropertyRevisionMetadata( $services ), @@ -711,7 +711,7 @@ return [ ); }, - 'WbRestApi.GetPropertyDescriptions' => function( MediaWikiServices $services ): GetPropertyDescriptions { + 'WbRestApi.GetPropertyDescriptions' => static function( MediaWikiServices $services ): GetPropertyDescriptions { return new GetPropertyDescriptions( WbRestApi::getGetLatestPropertyRevisionMetadata( $services ), WbRestApi::getTermLookupEntityTermsRetriever( $services ), @@ -719,7 +719,7 @@ return [ ); }, - 'WbRestApi.GetPropertyDescriptionWithFallback' => function( MediaWikiServices $services ): GetPropertyDescriptionWithFallback { + 'WbRestApi.GetPropertyDescriptionWithFallback' => static function( MediaWikiServices $services ): GetPropertyDescriptionWithFallback { return new GetPropertyDescriptionWithFallback( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getGetLatestPropertyRevisionMetadata( $services ), @@ -730,7 +730,7 @@ return [ ); }, - 'WbRestApi.GetPropertyLabel' => function( MediaWikiServices $services ): GetPropertyLabel { + 'WbRestApi.GetPropertyLabel' => static function( MediaWikiServices $services ): GetPropertyLabel { return new GetPropertyLabel( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getGetLatestPropertyRevisionMetadata( $services ), @@ -738,7 +738,7 @@ return [ ); }, - 'WbRestApi.GetPropertyLabels' => function( MediaWikiServices $services ): GetPropertyLabels { + 'WbRestApi.GetPropertyLabels' => static function( MediaWikiServices $services ): GetPropertyLabels { return new GetPropertyLabels( WbRestApi::getGetLatestPropertyRevisionMetadata( $services ), WbRestApi::getTermLookupEntityTermsRetriever( $services ), @@ -746,7 +746,7 @@ return [ ); }, - 'WbRestApi.GetPropertyLabelWithFallback' => function( MediaWikiServices $services ): GetPropertyLabelWithFallback { + 'WbRestApi.GetPropertyLabelWithFallback' => static function( MediaWikiServices $services ): GetPropertyLabelWithFallback { return new GetPropertyLabelWithFallback( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getGetLatestPropertyRevisionMetadata( $services ), @@ -757,7 +757,7 @@ return [ ); }, - 'WbRestApi.GetPropertyStatement' => function( MediaWikiServices $services ): GetPropertyStatement { + 'WbRestApi.GetPropertyStatement' => static function( MediaWikiServices $services ): GetPropertyStatement { return new GetPropertyStatement( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertPropertyExists( $services ), @@ -765,7 +765,7 @@ return [ ); }, - 'WbRestApi.GetPropertyStatements' => function( MediaWikiServices $services ): GetPropertyStatements { + 'WbRestApi.GetPropertyStatements' => static function( MediaWikiServices $services ): GetPropertyStatements { return new GetPropertyStatements( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getPropertyDataRetriever( $services ), @@ -773,7 +773,7 @@ return [ ); }, - 'WbRestApi.GetSitelink' => function( MediaWikiServices $services ): GetSitelink { + 'WbRestApi.GetSitelink' => static function( MediaWikiServices $services ): GetSitelink { return new GetSitelink( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getGetLatestItemRevisionMetadata( $services ), @@ -781,7 +781,7 @@ return [ ); }, - 'WbRestApi.GetSitelinks' => function( MediaWikiServices $services ): GetSitelinks { + 'WbRestApi.GetSitelinks' => static function( MediaWikiServices $services ): GetSitelinks { return new GetSitelinks( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getGetLatestItemRevisionMetadata( $services ), @@ -789,7 +789,7 @@ return [ ); }, - 'WbRestApi.GetStatement' => function( MediaWikiServices $services ): GetStatement { + 'WbRestApi.GetStatement' => static function( MediaWikiServices $services ): GetStatement { return new GetStatement( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getStatementRetriever( $services ), @@ -797,7 +797,7 @@ return [ ); }, - 'WbRestApi.ItemDataRetriever' => function( MediaWikiServices $services ): EntityRevisionLookupItemDataRetriever { + 'WbRestApi.ItemDataRetriever' => static function( MediaWikiServices $services ): EntityRevisionLookupItemDataRetriever { return new EntityRevisionLookupItemDataRetriever( WikibaseRepo::getEntityRevisionLookup( $services ), new StatementReadModelConverter( @@ -808,7 +808,7 @@ return [ ); }, - 'WbRestApi.ItemUpdater' => function( MediaWikiServices $services ): EntityUpdaterItemUpdater { + 'WbRestApi.ItemUpdater' => static function( MediaWikiServices $services ): EntityUpdaterItemUpdater { return new EntityUpdaterItemUpdater( WbRestApi::getEntityUpdater( $services ), new SitelinksReadModelConverter( $services->getSiteLookup() ), @@ -819,11 +819,11 @@ return [ ); }, - 'WbRestApi.LabelLanguageCodeValidator' => function( MediaWikiServices $services ): LabelLanguageCodeValidator { + 'WbRestApi.LabelLanguageCodeValidator' => static function( MediaWikiServices $services ): LabelLanguageCodeValidator { return new ValueValidatorLanguageCodeValidator( WikibaseRepo::getTermValidatorFactory( $services )->getLabelLanguageValidator() ); }, - 'WbRestApi.PatchItem' => function( MediaWikiServices $services ): PatchItem { + 'WbRestApi.PatchItem' => static function( MediaWikiServices $services ): PatchItem { return new PatchItem( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertItemExists(), @@ -879,7 +879,7 @@ return [ ); }, - 'WbRestApi.PatchItemAliases' => function( MediaWikiServices $services ): PatchItemAliases { + 'WbRestApi.PatchItemAliases' => static function( MediaWikiServices $services ): PatchItemAliases { return new PatchItemAliases( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertItemExists( $services ), @@ -900,7 +900,7 @@ return [ ); }, - 'WbRestApi.PatchItemDescriptions' => function( MediaWikiServices $services ): PatchItemDescriptions { + 'WbRestApi.PatchItemDescriptions' => static function( MediaWikiServices $services ): PatchItemDescriptions { return new PatchItemDescriptions( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertItemExists( $services ), @@ -923,7 +923,7 @@ return [ ); }, - 'WbRestApi.PatchItemLabels' => function( MediaWikiServices $services ): PatchItemLabels { + 'WbRestApi.PatchItemLabels' => static function( MediaWikiServices $services ): PatchItemLabels { return new PatchItemLabels( WbRestApi::getAssertItemExists( $services ), WbRestApi::getTermLookupEntityTermsRetriever( $services ), @@ -948,7 +948,7 @@ return [ ); }, - 'WbRestApi.PatchItemStatement' => function( MediaWikiServices $services ): PatchItemStatement { + 'WbRestApi.PatchItemStatement' => static function( MediaWikiServices $services ): PatchItemStatement { return new PatchItemStatement( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertItemExists( $services ), @@ -956,7 +956,7 @@ return [ ); }, - 'WbRestApi.PatchProperty' => function( MediaWikiServices $services ): PatchProperty { + 'WbRestApi.PatchProperty' => static function( MediaWikiServices $services ): PatchProperty { return new PatchProperty( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertPropertyExists( $services ), @@ -999,7 +999,7 @@ return [ ); }, - 'WbRestApi.PatchPropertyAliases' => function( MediaWikiServices $services ): PatchPropertyAliases { + 'WbRestApi.PatchPropertyAliases' => static function( MediaWikiServices $services ): PatchPropertyAliases { $termLanguages = WikibaseRepo::getTermsLanguages( $services ); return new PatchPropertyAliases( @@ -1022,7 +1022,7 @@ return [ ); }, - 'WbRestApi.PatchPropertyDescriptions' => function( MediaWikiServices $services ): PatchPropertyDescriptions { + 'WbRestApi.PatchPropertyDescriptions' => static function( MediaWikiServices $services ): PatchPropertyDescriptions { return new PatchPropertyDescriptions( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertPropertyExists( $services ), @@ -1047,7 +1047,7 @@ return [ ); }, - 'WbRestApi.PatchPropertyLabels' => function( MediaWikiServices $services ): PatchPropertyLabels { + 'WbRestApi.PatchPropertyLabels' => static function( MediaWikiServices $services ): PatchPropertyLabels { return new PatchPropertyLabels( new TermLookupEntityTermsRetriever( WikibaseRepo::getTermLookup( $services ), @@ -1073,7 +1073,7 @@ return [ ); }, - 'WbRestApi.PatchPropertyStatement' => function( MediaWikiServices $services ): PatchPropertyStatement { + 'WbRestApi.PatchPropertyStatement' => static function( MediaWikiServices $services ): PatchPropertyStatement { return new PatchPropertyStatement( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertPropertyExists( $services ), @@ -1081,7 +1081,7 @@ return [ ); }, - 'WbRestApi.PatchSitelinks' => function( MediaWikiServices $services ): PatchSitelinks { + 'WbRestApi.PatchSitelinks' => static function( MediaWikiServices $services ): PatchSitelinks { return new PatchSitelinks( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertItemExists( $services ), @@ -1103,7 +1103,7 @@ return [ ); }, - 'WbRestApi.PatchStatement' => function( MediaWikiServices $services ): PatchStatement { + 'WbRestApi.PatchStatement' => static function( MediaWikiServices $services ): PatchStatement { return new PatchStatement( WbRestApi::getValidatingRequestDeserializer( $services ), new PatchedStatementValidator( new StatementValidator( WbRestApi::getStatementDeserializer( $services ) ) ), @@ -1116,7 +1116,7 @@ return [ ); }, - 'WbRestApi.PreconditionMiddlewareFactory' => function( MediaWikiServices $services ): PreconditionMiddlewareFactory { + 'WbRestApi.PreconditionMiddlewareFactory' => static function( MediaWikiServices $services ): PreconditionMiddlewareFactory { return new PreconditionMiddlewareFactory( WikibaseRepo::getEntityRevisionLookup( $services ), WikibaseRepo::getEntityIdParser( $services ), @@ -1124,7 +1124,7 @@ return [ ); }, - 'WbRestApi.PropertyDataRetriever' => function( MediaWikiServices $services ): EntityRevisionLookupPropertyDataRetriever { + 'WbRestApi.PropertyDataRetriever' => static function( MediaWikiServices $services ): EntityRevisionLookupPropertyDataRetriever { return new EntityRevisionLookupPropertyDataRetriever( WikibaseRepo::getEntityRevisionLookup( $services ), new StatementReadModelConverter( @@ -1134,7 +1134,7 @@ return [ ); }, - 'WbRestApi.PropertyUpdater' => function( MediaWikiServices $services ): EntityUpdaterPropertyUpdater { + 'WbRestApi.PropertyUpdater' => static function( MediaWikiServices $services ): EntityUpdaterPropertyUpdater { return new EntityUpdaterPropertyUpdater( WbRestApi::getEntityUpdater( $services ), new StatementReadModelConverter( @@ -1144,7 +1144,7 @@ return [ ); }, - 'WbRestApi.RemoveItemDescription' => function( MediaWikiServices $services ): RemoveItemDescription { + 'WbRestApi.RemoveItemDescription' => static function( MediaWikiServices $services ): RemoveItemDescription { return new RemoveItemDescription( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertItemExists( $services ), @@ -1154,7 +1154,7 @@ return [ ); }, - 'WbRestApi.RemoveItemLabel' => function( MediaWikiServices $services ): RemoveItemLabel { + 'WbRestApi.RemoveItemLabel' => static function( MediaWikiServices $services ): RemoveItemLabel { return new RemoveItemLabel( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertItemExists( $services ), @@ -1164,7 +1164,7 @@ return [ ); }, - 'WbRestApi.RemoveItemStatement' => function( MediaWikiServices $services ): RemoveItemStatement { + 'WbRestApi.RemoveItemStatement' => static function( MediaWikiServices $services ): RemoveItemStatement { return new RemoveItemStatement( WbRestApi::getAssertItemExists( $services ), WbRestApi::getRemoveStatement( $services ), @@ -1172,7 +1172,7 @@ return [ ); }, - 'WbRestApi.RemovePropertyDescription' => function( MediaWikiServices $services ): RemovePropertyDescription { + 'WbRestApi.RemovePropertyDescription' => static function( MediaWikiServices $services ): RemovePropertyDescription { return new RemovePropertyDescription( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertPropertyExists( $services ), @@ -1182,7 +1182,7 @@ return [ ); }, - 'WbRestApi.RemovePropertyLabel' => function( MediaWikiServices $services ): RemovePropertyLabel { + 'WbRestApi.RemovePropertyLabel' => static function( MediaWikiServices $services ): RemovePropertyLabel { return new RemovePropertyLabel( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertPropertyExists( $services ), @@ -1192,7 +1192,7 @@ return [ ); }, - 'WbRestApi.RemovePropertyStatement' => function( MediaWikiServices $services ): RemovePropertyStatement { + 'WbRestApi.RemovePropertyStatement' => static function( MediaWikiServices $services ): RemovePropertyStatement { return new RemovePropertyStatement( WbRestApi::getAssertPropertyExists( $services ), WbRestApi::getRemoveStatement( $services ), @@ -1200,7 +1200,7 @@ return [ ); }, - 'WbRestApi.RemoveSitelink' => function( MediaWikiServices $services ): RemoveSitelink { + 'WbRestApi.RemoveSitelink' => static function( MediaWikiServices $services ): RemoveSitelink { return new RemoveSitelink( WbRestApi::getItemDataRetriever( $services ), WbRestApi::getItemUpdater( $services ), @@ -1210,7 +1210,7 @@ return [ ); }, - 'WbRestApi.RemoveStatement' => function( MediaWikiServices $services ): RemoveStatement { + 'WbRestApi.RemoveStatement' => static function( MediaWikiServices $services ): RemoveStatement { return new RemoveStatement( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertUserIsAuthorized( $services ), @@ -1220,7 +1220,7 @@ return [ ); }, - 'WbRestApi.ReplaceItemStatement' => function( MediaWikiServices $services ): ReplaceItemStatement { + 'WbRestApi.ReplaceItemStatement' => static function( MediaWikiServices $services ): ReplaceItemStatement { return new ReplaceItemStatement( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertItemExists( $services ), @@ -1228,7 +1228,7 @@ return [ ); }, - 'WbRestApi.ReplacePropertyStatement' => function( MediaWikiServices $services ): ReplacePropertyStatement { + 'WbRestApi.ReplacePropertyStatement' => static function( MediaWikiServices $services ): ReplacePropertyStatement { return new ReplacePropertyStatement( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertPropertyExists( $services ), @@ -1236,7 +1236,7 @@ return [ ); }, - 'WbRestApi.ReplaceStatement' => function( MediaWikiServices $services ): ReplaceStatement { + 'WbRestApi.ReplaceStatement' => static function( MediaWikiServices $services ): ReplaceStatement { return new ReplaceStatement( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertStatementSubjectExists( $services ), @@ -1245,7 +1245,7 @@ return [ ); }, - 'WbRestApi.SetItemDescription' => function( MediaWikiServices $services ): SetItemDescription { + 'WbRestApi.SetItemDescription' => static function( MediaWikiServices $services ): SetItemDescription { return new SetItemDescription( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertItemExists( $services ), @@ -1255,7 +1255,7 @@ return [ ); }, - 'WbRestApi.SetItemLabel' => function( MediaWikiServices $services ): SetItemLabel { + 'WbRestApi.SetItemLabel' => static function( MediaWikiServices $services ): SetItemLabel { return new SetItemLabel( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertItemExists( $services ), @@ -1265,7 +1265,7 @@ return [ ); }, - 'WbRestApi.SetPropertyDescription' => function( MediaWikiServices $services ): SetPropertyDescription { + 'WbRestApi.SetPropertyDescription' => static function( MediaWikiServices $services ): SetPropertyDescription { return new SetPropertyDescription( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getPropertyDataRetriever( $services ), @@ -1275,7 +1275,7 @@ return [ ); }, - 'WbRestApi.SetPropertyLabel' => function( MediaWikiServices $services ): SetPropertyLabel { + 'WbRestApi.SetPropertyLabel' => static function( MediaWikiServices $services ): SetPropertyLabel { return new SetPropertyLabel( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getPropertyDataRetriever( $services ), @@ -1285,7 +1285,7 @@ return [ ); }, - 'WbRestApi.SetSitelink' => function( MediaWikiServices $services ): SetSitelink { + 'WbRestApi.SetSitelink' => static function( MediaWikiServices $services ): SetSitelink { return new SetSitelink( WbRestApi::getValidatingRequestDeserializer( $services ), WbRestApi::getAssertItemExists( $services ), @@ -1295,7 +1295,7 @@ return [ ); }, - 'WbRestApi.SitelinkDeserializer' => function( MediaWikiServices $services ): SitelinkDeserializer { + 'WbRestApi.SitelinkDeserializer' => static function( MediaWikiServices $services ): SitelinkDeserializer { return new SitelinkDeserializer( MediaWikiTitleCodec::getTitleInvalidRegex(), array_keys( WikibaseRepo::getSettings( $services )->getSetting( 'badgeItems' ) ), @@ -1307,7 +1307,7 @@ return [ ); }, - 'WbRestApi.StatementDeserializer' => function( MediaWikiServices $services ): StatementDeserializer { + 'WbRestApi.StatementDeserializer' => static function( MediaWikiServices $services ): StatementDeserializer { $propertyValuePairDeserializer = new PropertyValuePairDeserializer( WikibaseRepo::getEntityIdParser( $services ), WikibaseRepo::getPropertyDataTypeLookup( $services ), @@ -1323,21 +1323,21 @@ return [ ); }, - 'WbRestApi.StatementRedirectMiddlewareFactory' => function( MediaWikiServices $services ): StatementRedirectMiddlewareFactory { + 'WbRestApi.StatementRedirectMiddlewareFactory' => static function( MediaWikiServices $services ): StatementRedirectMiddlewareFactory { return new StatementRedirectMiddlewareFactory( WikibaseRepo::getEntityIdParser( $services ), new StatementSubjectRetriever( WikibaseRepo::getEntityRevisionLookup( $services ) ) ); }, - 'WbRestApi.StatementRemover' => function( MediaWikiServices $services ): StatementRemover { + 'WbRestApi.StatementRemover' => static function( MediaWikiServices $services ): StatementRemover { return new EntityUpdaterStatementRemover( new StatementSubjectRetriever( WikibaseRepo::getEntityRevisionLookup( $services ) ), WbRestApi::getEntityUpdater( $services ), ); }, - 'WbRestApi.StatementRetriever' => function( MediaWikiServices $services ): EntityRevisionLookupStatementRetriever { + 'WbRestApi.StatementRetriever' => static function( MediaWikiServices $services ): EntityRevisionLookupStatementRetriever { return new EntityRevisionLookupStatementRetriever( new StatementSubjectRetriever( WikibaseRepo::getEntityRevisionLookup( $services ) ), new StatementReadModelConverter( @@ -1347,13 +1347,13 @@ return [ ); }, - 'WbRestApi.StatementSerializer' => function( MediaWikiServices $services ): StatementSerializer { + 'WbRestApi.StatementSerializer' => static function( MediaWikiServices $services ): StatementSerializer { $propertyValuePairSerializer = new PropertyValuePairSerializer(); $referenceSerializer = new ReferenceSerializer( $propertyValuePairSerializer ); return new StatementSerializer( $propertyValuePairSerializer, $referenceSerializer ); }, - 'WbRestApi.StatementUpdater' => function( MediaWikiServices $services ): StatementUpdater { + 'WbRestApi.StatementUpdater' => static function( MediaWikiServices $services ): StatementUpdater { return new EntityUpdaterStatementUpdater( WikibaseRepo::getStatementGuidParser( $services ), new StatementSubjectRetriever( WikibaseRepo::getEntityRevisionLookup( $services ) ), @@ -1365,21 +1365,21 @@ return [ ); }, - 'WbRestApi.TermLookupEntityTermsRetriever' => function( MediaWikiServices $services ): TermLookupEntityTermsRetriever { + 'WbRestApi.TermLookupEntityTermsRetriever' => static function( MediaWikiServices $services ): TermLookupEntityTermsRetriever { return new TermLookupEntityTermsRetriever( WikibaseRepo::getTermLookup( $services ), WikibaseRepo::getTermsLanguages( $services ) ); }, - 'WbRestApi.UnexpectedErrorHandlerMiddleware' => function( MediaWikiServices $services ): UnexpectedErrorHandlerMiddleware { + 'WbRestApi.UnexpectedErrorHandlerMiddleware' => static function( MediaWikiServices $services ): UnexpectedErrorHandlerMiddleware { return new UnexpectedErrorHandlerMiddleware( new ResponseFactory(), $services->get( 'WbRestApi.ErrorReporter' ) ); }, - 'WbRestApi.ValidatingRequestDeserializer' => function( MediaWikiServices $services ): VRD { + 'WbRestApi.ValidatingRequestDeserializer' => static function( MediaWikiServices $services ): VRD { return new VRD( $services ); }, diff --git a/repo/rest-api/tests/phpunit/Application/UseCases/CreateProperty/CreatePropertyValidatorTest.php b/repo/rest-api/tests/phpunit/Application/UseCases/CreateProperty/CreatePropertyValidatorTest.php index 058100d..4992092 100644 --- a/repo/rest-api/tests/phpunit/Application/UseCases/CreateProperty/CreatePropertyValidatorTest.php +++ b/repo/rest-api/tests/phpunit/Application/UseCases/CreateProperty/CreatePropertyValidatorTest.php @@ -171,11 +171,11 @@ class CreatePropertyValidatorTest extends TestCase { } public static function labelsValidationErrorProvider(): Generator { - $mockSyntaxValidator = function( self $test ) { + $mockSyntaxValidator = static function( self $test ) { $test->labelsSyntaxValidator = $test->createMock( LabelsSyntaxValidator::class ); return $test->labelsSyntaxValidator; }; - $mockContentsValidator = function( self $test ) { + $mockContentsValidator = static function( self $test ) { $test->labelsContentsValidator = $test->createMock( PropertyLabelsContentsValidator::class ); return $test->labelsContentsValidator; }; @@ -282,11 +282,11 @@ class CreatePropertyValidatorTest extends TestCase { } public static function descriptionsValidationErrorProvider(): Generator { - $mockSyntaxValidator = function( self $test ) { + $mockSyntaxValidator = static function( self $test ) { $test->descriptionsSyntaxValidator = $test->createMock( DescriptionsSyntaxValidator::class ); return $test->descriptionsSyntaxValidator; }; - $mockContentsValidator = function( self $test ) { + $mockContentsValidator = static function( self $test ) { $test->descriptionsContentsValidator = $test->createMock( PropertyDescriptionsContentsValidator::class ); return $test->descriptionsContentsValidator; }; diff --git a/repo/rest-api/tests/phpunit/Application/UseCases/PatchItem/PatchedItemValidatorTest.php b/repo/rest-api/tests/phpunit/Application/UseCases/PatchItem/PatchedItemValidatorTest.php index ebe04b9..34a74f0 100644 --- a/repo/rest-api/tests/phpunit/Application/UseCases/PatchItem/PatchedItemValidatorTest.php +++ b/repo/rest-api/tests/phpunit/Application/UseCases/PatchItem/PatchedItemValidatorTest.php @@ -342,11 +342,11 @@ class PatchedItemValidatorTest extends TestCase { } public static function labelsValidationErrorProvider(): Generator { - $mockSyntaxValidator = function( self $test ) { + $mockSyntaxValidator = static function( self $test ) { $test->labelsSyntaxValidator = $test->createMock( LabelsSyntaxValidator::class ); return $test->labelsSyntaxValidator; }; - $mockContentsValidator = function( self $test ) { + $mockContentsValidator = static function( self $test ) { $test->labelsContentsValidator = $test->createMock( ItemLabelsContentsValidator::class ); return $test->labelsContentsValidator; }; @@ -459,11 +459,11 @@ class PatchedItemValidatorTest extends TestCase { } public static function descriptionsValidationErrorProvider(): Generator { - $mockSyntaxValidator = function ( self $test ) { + $mockSyntaxValidator = static function ( self $test ) { $test->descriptionsSyntaxValidator = $test->createMock( DescriptionsSyntaxValidator::class ); return $test->descriptionsSyntaxValidator; }; - $mockContentsValidator = function ( self $test ) { + $mockContentsValidator = static function ( self $test ) { $test->descriptionsContentsValidator = $test->createMock( ItemDescriptionsContentsValidator::class ); return $test->descriptionsContentsValidator; }; diff --git a/repo/rest-api/tests/phpunit/Application/UseCases/PatchProperty/PatchedPropertyValidatorTest.php b/repo/rest-api/tests/phpunit/Application/UseCases/PatchProperty/PatchedPropertyValidatorTest.php index 5e21fba..579bf97 100644 --- a/repo/rest-api/tests/phpunit/Application/UseCases/PatchProperty/PatchedPropertyValidatorTest.php +++ b/repo/rest-api/tests/phpunit/Application/UseCases/PatchProperty/PatchedPropertyValidatorTest.php @@ -364,11 +364,11 @@ class PatchedPropertyValidatorTest extends TestCase { } public static function labelsValidationErrorProvider(): Generator { - $mockSyntaxValidator = function ( self $test ) { + $mockSyntaxValidator = static function ( self $test ) { $test->labelsSyntaxValidator = $test->createMock( LabelsSyntaxValidator::class ); return $test->labelsSyntaxValidator; }; - $mockContentsValidator = function ( self $test ) { + $mockContentsValidator = static function ( self $test ) { $test->labelsContentsValidator = $test->createMock( PropertyLabelsContentsValidator::class ); return $test->labelsContentsValidator; }; @@ -476,11 +476,11 @@ class PatchedPropertyValidatorTest extends TestCase { } public static function descriptionsValidationErrorProvider(): Generator { - $mockSyntaxValidator = function ( self $test ) { + $mockSyntaxValidator = static function ( self $test ) { $test->descriptionsSyntaxValidator = $test->createMock( DescriptionsSyntaxValidator::class ); return $test->descriptionsSyntaxValidator; }; - $mockContentsValidator = function ( self $test ) { + $mockContentsValidator = static function ( self $test ) { $test->descriptionsContentsValidator = $test->createMock( PropertyDescriptionsContentsValidator::class ); return $test->descriptionsContentsValidator; }; diff --git a/repo/rest-api/tests/phpunit/Application/Validation/LabelsAndDescriptionsContentsValidatorTest.php b/repo/rest-api/tests/phpunit/Application/Validation/LabelsAndDescriptionsContentsValidatorTest.php index f9cd538..36764db 100644 --- a/repo/rest-api/tests/phpunit/Application/Validation/LabelsAndDescriptionsContentsValidatorTest.php +++ b/repo/rest-api/tests/phpunit/Application/Validation/LabelsAndDescriptionsContentsValidatorTest.php @@ -122,7 +122,7 @@ class LabelsAndDescriptionsContentsValidatorTest extends TestCase { public static function validatorProvider(): Generator { yield PropertyLabelsContentsValidator::class => [ - function ( self $self ) { + static function ( self $self ) { $propertyLabelValidator = $self->createMock( PropertyLabelValidator::class ); $propertyLabelsContentsValidator = new PropertyLabelsContentsValidator( $propertyLabelValidator ); return [ @@ -135,7 +135,7 @@ class LabelsAndDescriptionsContentsValidatorTest extends TestCase { ]; yield PropertyDescriptionsContentsValidator::class => [ - function ( self $self ) { + static function ( self $self ) { $propertyDescriptionValidator = $self->createMock( PropertyDescriptionValidator::class ); $propertyDescriptionsContentsValidator = new PropertyDescriptionsContentsValidator( $propertyDescriptionValidator ); return [ @@ -148,7 +148,7 @@ class LabelsAndDescriptionsContentsValidatorTest extends TestCase { ]; yield ItemLabelsContentsValidator::class => [ - function ( self $self ) { + static function ( self $self ) { $itemLabelValidator = $self->createMock( ItemLabelValidator::class ); $itemLabelsContentsValidator = new ItemLabelsContentsValidator( $itemLabelValidator ); return [ @@ -161,7 +161,7 @@ class LabelsAndDescriptionsContentsValidatorTest extends TestCase { ]; yield ItemDescriptionsContentsValidator::class => [ - function ( self $self ) { + static function ( self $self ) { $itemDescriptionValidator = $self->createMock( ItemDescriptionValidator::class ); $itemDescriptionsContentsValidator = new ItemDescriptionsContentsValidator( $itemDescriptionValidator ); return [ diff --git a/repo/rest-api/tests/phpunit/Application/Validation/StatementsValidatorTest.php b/repo/rest-api/tests/phpunit/Application/Validation/StatementsValidatorTest.php index 28855b2..66f4b8f 100644 --- a/repo/rest-api/tests/phpunit/Application/Validation/StatementsValidatorTest.php +++ b/repo/rest-api/tests/phpunit/Application/Validation/StatementsValidatorTest.php @@ -66,7 +66,7 @@ class StatementsValidatorTest extends TestCase { public function testMissingStatementValue_returnsValidationError(): void { $this->propValPairDeserializer = $this->createStub( PropertyValuePairDeserializer::class ); - $this->propValPairDeserializer->method( 'deserialize' )->willReturnCallback( function( $_, $basePath ): void { + $this->propValPairDeserializer->method( 'deserialize' )->willReturnCallback( static function( $_, $basePath ): void { throw new MissingFieldException( 'value', $basePath ); } ); diff --git a/repo/rest-api/tests/phpunit/Infrastructure/DataAccess/EntityUpdaterItemUpdaterTest.php b/repo/rest-api/tests/phpunit/Infrastructure/DataAccess/EntityUpdaterItemUpdaterTest.php index a23f117..87a9f9a 100644 --- a/repo/rest-api/tests/phpunit/Infrastructure/DataAccess/EntityUpdaterItemUpdaterTest.php +++ b/repo/rest-api/tests/phpunit/Infrastructure/DataAccess/EntityUpdaterItemUpdaterTest.php @@ -66,7 +66,7 @@ class EntityUpdaterItemUpdaterTest extends TestCase { $this->entityUpdater->expects( $this->once() ) ->method( 'create' ) ->with( $itemToCreate, $editMetaData ) - ->willReturnCallback( function () use ( $itemToCreate, $expectedRevisionId, $expectedRevisionTimestamp ) { + ->willReturnCallback( static function () use ( $itemToCreate, $expectedRevisionId, $expectedRevisionTimestamp ) { $itemToCreate->setId( new ItemId( 'Q123' ) ); return new EntityRevision( $itemToCreate, $expectedRevisionId, $expectedRevisionTimestamp ); } ); diff --git a/repo/rest-api/tests/phpunit/Infrastructure/DataAccess/EntityUpdaterPropertyUpdaterTest.php b/repo/rest-api/tests/phpunit/Infrastructure/DataAccess/EntityUpdaterPropertyUpdaterTest.php index c556c6a..8e6f46f 100644 --- a/repo/rest-api/tests/phpunit/Infrastructure/DataAccess/EntityUpdaterPropertyUpdaterTest.php +++ b/repo/rest-api/tests/phpunit/Infrastructure/DataAccess/EntityUpdaterPropertyUpdaterTest.php @@ -57,7 +57,7 @@ class EntityUpdaterPropertyUpdaterTest extends TestCase { $this->entityUpdater->expects( $this->once() ) ->method( 'create' ) ->with( $propertyToCreate, $editMetaData ) - ->willReturnCallback( function () use ( $propertyToCreate, $expectedRevisionId, $expectedRevisionTimestamp ) { + ->willReturnCallback( static function () use ( $propertyToCreate, $expectedRevisionId, $expectedRevisionTimestamp ) { $propertyToCreate->setId( new NumericPropertyId( 'P123' ) ); return new EntityRevision( $propertyToCreate, $expectedRevisionId, $expectedRevisionTimestamp ); } ); diff --git a/repo/rest-api/tests/phpunit/RouteHandlers/Middleware/TempUserCreationResponseHeaderMiddlewareTest.php b/repo/rest-api/tests/phpunit/RouteHandlers/Middleware/TempUserCreationResponseHeaderMiddlewareTest.php index 4e5980e..2bc3387 100644 --- a/repo/rest-api/tests/phpunit/RouteHandlers/Middleware/TempUserCreationResponseHeaderMiddlewareTest.php +++ b/repo/rest-api/tests/phpunit/RouteHandlers/Middleware/TempUserCreationResponseHeaderMiddlewareTest.php @@ -37,7 +37,7 @@ class TempUserCreationResponseHeaderMiddlewareTest extends TestCase { $hookRunner = $this->createMock( HookRunner::class ); $hookRunner->method( 'onTempUserCreatedRedirect' )->willReturnCallback( - function( $session, $user, $returnTo, $returnToQuery, $returnToAnchor, &$redirectUrl ): void { + static function( $session, $user, $returnTo, $returnToQuery, $returnToAnchor, &$redirectUrl ): void { $redirectUrl = 'https://en.wikipedia.org/wiki/Test'; } ); @@ -73,7 +73,7 @@ class TempUserCreationResponseHeaderMiddlewareTest extends TestCase { $hookRunner = $this->createMock( HookRunner::class ); $hookRunner->method( 'onTempUserCreatedRedirect' )->willReturnCallback( - function( $session, $user, $returnTo, $returnToQuery, $returnToAnchor, &$redirectUrl ): void { + static function( $session, $user, $returnTo, $returnToQuery, $returnToAnchor, &$redirectUrl ): void { $redirectUrl = ''; } ); diff --git a/repo/rest-api/tests/phpunit/RouteHandlers/Middleware/UnexpectedErrorHandlerMiddlewareTest.php b/repo/rest-api/tests/phpunit/RouteHandlers/Middleware/UnexpectedErrorHandlerMiddlewareTest.php index 1b717ec..43e919f 100644 --- a/repo/rest-api/tests/phpunit/RouteHandlers/Middleware/UnexpectedErrorHandlerMiddlewareTest.php +++ b/repo/rest-api/tests/phpunit/RouteHandlers/Middleware/UnexpectedErrorHandlerMiddlewareTest.php @@ -37,7 +37,7 @@ class UnexpectedErrorHandlerMiddlewareTest extends TestCase { public function testHandlesError( Throwable $throwable ): void { $response = $this->newMiddleware()->run( $this->createStub( Handler::class ), - function () use ( $throwable ): Response { + static function () use ( $throwable ): Response { throw $throwable; } ); @@ -75,7 +75,7 @@ class UnexpectedErrorHandlerMiddlewareTest extends TestCase { $this->newMiddleware()->run( $routeHandler, - function () use ( $exception ): void { + static function () use ( $exception ): void { throw $exception; } ); diff --git a/repo/tests/phpunit/includes/Actions/EditEntityActionTest.php b/repo/tests/phpunit/includes/Actions/EditEntityActionTest.php index 7ca19c8..3a45d40 100644 --- a/repo/tests/phpunit/includes/Actions/EditEntityActionTest.php +++ b/repo/tests/phpunit/includes/Actions/EditEntityActionTest.php @@ -44,7 +44,7 @@ class EditEntityActionTest extends ActionTestCase { $method = __METHOD__; $this->setTemporaryHook( 'EditFilterMergedContent', - function ( IContextSource $context, EntityContent $entityContent, Status $status ) use ( $method ) { + static function ( IContextSource $context, EntityContent $entityContent, Status $status ) use ( $method ) { if ( !$entityContent->isRedirect() ) { $entity = $entityContent->getEntity(); if ( $entity instanceof LabelsProvider ) { diff --git a/repo/tests/phpunit/includes/Actions/HistoryEntityActionTest.php b/repo/tests/phpunit/includes/Actions/HistoryEntityActionTest.php index 4fdabb3..5f7b4c1 100644 --- a/repo/tests/phpunit/includes/Actions/HistoryEntityActionTest.php +++ b/repo/tests/phpunit/includes/Actions/HistoryEntityActionTest.php @@ -85,7 +85,7 @@ class HistoryEntityActionTest extends \PHPUnit\Framework\TestCase { $context->method( 'getUser' ) ->willReturn( new User() ); $context->method( 'msg' ) - ->willReturnCallback( function( ...$args ) { + ->willReturnCallback( static function( ...$args ) { return wfMessage( ...$args ) ->inLanguage( self::DUMMY_LANGUAGE ); } ); @@ -142,7 +142,7 @@ class HistoryEntityActionTest extends \PHPUnit\Framework\TestCase { $pageTitle = null; $output = $this->createMock( OutputPage::class ); $output->method( 'setPageTitleMsg' ) - ->willReturnCallback( function( $m ) use( &$pageTitle ) { + ->willReturnCallback( static function( $m ) use( &$pageTitle ) { $pageTitle = $m->escaped(); } ); diff --git a/repo/tests/phpunit/includes/Api/ApiJsonFormatTest.php b/repo/tests/phpunit/includes/Api/ApiJsonFormatTest.php index 4b72526..3ca262c 100644 --- a/repo/tests/phpunit/includes/Api/ApiJsonFormatTest.php +++ b/repo/tests/phpunit/includes/Api/ApiJsonFormatTest.php @@ -155,7 +155,7 @@ class ApiJsonFormatTest extends ApiFormatTestCase { private function replaceHashesWithPlaceholder( array $json ) { array_walk_recursive( $json, - function( &$value, $key ) { + static function( &$value, $key ) { if ( $key === 'hash' ) { $value = 'XXX'; } diff --git a/repo/tests/phpunit/includes/Api/CreateRedirectTest.php b/repo/tests/phpunit/includes/Api/CreateRedirectTest.php index 258b629..5b3f766 100644 --- a/repo/tests/phpunit/includes/Api/CreateRedirectTest.php +++ b/repo/tests/phpunit/includes/Api/CreateRedirectTest.php @@ -79,7 +79,7 @@ class CreateRedirectTest extends MediaWikiIntegrationTestCase { $permissionChecker = $this->createMock( EntityPermissionChecker::class ); $permissionChecker->method( 'getPermissionStatusForEntityId' ) - ->willReturnCallback( function( User $user ) { + ->willReturnCallback( static function( User $user ) { if ( $user->getName() === 'UserWithoutPermission' ) { return Status::newFatal( 'permissiondenied' ); } else { diff --git a/repo/tests/phpunit/includes/Api/EditEntityClearChangeOpValidateIntegrationTest.php b/repo/tests/phpunit/includes/Api/EditEntityClearChangeOpValidateIntegrationTest.php index 1b4eb4a..a689e10 100644 --- a/repo/tests/phpunit/includes/Api/EditEntityClearChangeOpValidateIntegrationTest.php +++ b/repo/tests/phpunit/includes/Api/EditEntityClearChangeOpValidateIntegrationTest.php @@ -146,7 +146,7 @@ class EditEntityClearChangeOpValidateIntegrationTest extends MediaWikiIntegratio $changeOp = $this->createMock( ChangeOp::class ); $changeOp->method( 'validate' ) - ->willReturnCallback( function( Item $item ) { + ->willReturnCallback( static function( Item $item ) { if ( $item->getLabels()->isEmpty() ) { return Result::newError( [ Error::newError( 'item without labels is no good' ) ] ); } @@ -154,7 +154,7 @@ class EditEntityClearChangeOpValidateIntegrationTest extends MediaWikiIntegratio } ); $changeOp->method( 'apply' ) - ->willReturnCallback( function( Item $item ) { + ->willReturnCallback( static function( Item $item ) { if ( $item->getLabels()->isEmpty() ) { throw new ChangeOpApplyException( 'item without labels is really no good' ); } diff --git a/repo/tests/phpunit/includes/Api/EntitySavingHelperTest.php b/repo/tests/phpunit/includes/Api/EntitySavingHelperTest.php index e11afcc..5cb074c 100644 --- a/repo/tests/phpunit/includes/Api/EntitySavingHelperTest.php +++ b/repo/tests/phpunit/includes/Api/EntitySavingHelperTest.php @@ -81,11 +81,11 @@ class EntitySavingHelperTest extends EntityLoadingHelperTest { private function getMockEntityStore() { $mock = $this->createMock( EntityStore::class ); $mock->method( 'canCreateWithCustomId' ) - ->willReturnCallback( function ( EntityId $id ) { + ->willReturnCallback( static function ( EntityId $id ) { return $id->getEntityType() === 'mediainfo'; } ); $mock->method( 'assignFreshId' ) - ->willReturnCallback( function ( EntityDocument $entity ) { + ->willReturnCallback( static function ( EntityDocument $entity ) { $entity->setId( new ItemId( 'Q333' ) ); } ); diff --git a/repo/tests/phpunit/includes/Api/EntityTermSearchHelperTest.php b/repo/tests/phpunit/includes/Api/EntityTermSearchHelperTest.php index dde9a44..f00a091 100644 --- a/repo/tests/phpunit/includes/Api/EntityTermSearchHelperTest.php +++ b/repo/tests/phpunit/includes/Api/EntityTermSearchHelperTest.php @@ -66,7 +66,7 @@ class EntityTermSearchHelperTest extends \PHPUnit\Framework\TestCase { $searchInteractor->expects( $this->atLeastOnce() ) ->method( 'setTermSearchOptions' ) ->with( $this->callback( - function ( TermSearchOptions $options ) use ( $strictLanguage ) { + static function ( TermSearchOptions $options ) use ( $strictLanguage ) { return $options->getUseLanguageFallback() !== $strictLanguage; } ) ); diff --git a/repo/tests/phpunit/includes/Api/FormatSnakValueTest.php b/repo/tests/phpunit/includes/Api/FormatSnakValueTest.php index 33320a8..5d2d792 100644 --- a/repo/tests/phpunit/includes/Api/FormatSnakValueTest.php +++ b/repo/tests/phpunit/includes/Api/FormatSnakValueTest.php @@ -55,7 +55,7 @@ class FormatSnakValueTest extends ApiTestCase { $deletedItem = wfMessage( 'wikibase-deletedentity-item' )->inLanguage( 'en' )->text(); return [ - [ function () { + [ static function () { return [ new StringValue( 'test' ), null, @@ -65,7 +65,7 @@ class FormatSnakValueTest extends ApiTestCase { '/^test$/', ]; } ], - [ function () use ( $november11 ) { + [ static function () use ( $november11 ) { return [ $november11, null, @@ -75,7 +75,7 @@ class FormatSnakValueTest extends ApiTestCase { '/^11 November 2013$/', ]; } ], - [ function () use ( $november ) { + [ static function () use ( $november ) { return [ $november, null, @@ -85,7 +85,7 @@ class FormatSnakValueTest extends ApiTestCase { '/^November 2013$/', ]; } ], - [ function () { + [ static function () { return [ new StringValue( 'http://acme.test' ), 'string', @@ -95,7 +95,7 @@ class FormatSnakValueTest extends ApiTestCase { '@^http://acme\.test$@', ]; } ], - [ function () { + [ static function () { return [ new StringValue( 'http://acme.test' ), 'string', @@ -105,7 +105,7 @@ class FormatSnakValueTest extends ApiTestCase { '@^http://acme\.test$@', ]; } ], - [ function () { + [ static function () { return [ new StringValue( 'http://acme.test' ), 'url', @@ -115,7 +115,7 @@ class FormatSnakValueTest extends ApiTestCase { '@^http://acme\.test$@', ]; } ], - [ function () { + [ static function () { return [ UnboundedQuantityValue::newFromNumber( '+12.33' ), 'quantity', @@ -125,7 +125,7 @@ class FormatSnakValueTest extends ApiTestCase { '@^12,33$@', // german decimal separator ]; } ], - [ function () { + [ static function () { return [ new StringValue( 'http://acme.test' ), 'url', @@ -135,7 +135,7 @@ class FormatSnakValueTest extends ApiTestCase { '@^http://acme\.test$@', ]; } ], - [ function () { + [ static function () { return [ new StringValue( 'example.jpg' ), 'commonsMedia', @@ -145,7 +145,7 @@ class FormatSnakValueTest extends ApiTestCase { '@commons\.wikimedia\.org\/wiki\/File:Example\.jpg@', ]; } ], - [ function () use ( $wordSeparator, $deletedItem ) { + [ static function () use ( $wordSeparator, $deletedItem ) { return [ new EntityIdValue( new ItemId( 'Q404' ) ), 'wikibase-item', @@ -156,7 +156,7 @@ class FormatSnakValueTest extends ApiTestCase { preg_quote( $deletedItem, '/' ) . '\)<\/span>$/', ]; } ], - [ function ( self $test ) { + [ static function ( self $test ) { $id = $test->testingItem->getId(); $idString = $id->getSerialization(); @@ -170,7 +170,7 @@ class FormatSnakValueTest extends ApiTestCase { '">George Washington<\/a>$/', ]; } ], - [ function ( self $test ) { + [ static function ( self $test ) { $id = $test->testingItem->getId(); $idString = $id->getSerialization(); @@ -185,7 +185,7 @@ class FormatSnakValueTest extends ApiTestCase { '<sup class="wb-language-fallback-indicator">[^<>]+<\/sup>$/', ]; } ], - [ function () { + [ static function () { return [ new StringValue( 'whatever' ), null, @@ -195,7 +195,7 @@ class FormatSnakValueTest extends ApiTestCase { '/wikibase-snakformatter-property-not-found/', ]; } ], - 'wikibase-snakformatter-valuetype-mismatch' => [ function ( self $test ) { + 'wikibase-snakformatter-valuetype-mismatch' => [ static function ( self $test ) { $qid = $test->testingItem->getId(); $pid = $test->testingProperty->getId(); @@ -208,7 +208,7 @@ class FormatSnakValueTest extends ApiTestCase { '/wikibase-snakformatter-valuetype-mismatch/', ]; } ], - [ function ( self $test ) { + [ static function ( self $test ) { $pid = $test->testingProperty->getId(); return [ @@ -375,7 +375,7 @@ class FormatSnakValueTest extends ApiTestCase { } protected function createPropertyWithDataTypeWithCustomDeserializer( string $dataType, callable $deserialize ): PropertyId { - $this->setTemporaryHook( 'WikibaseRepoDataTypes', function ( array &$dataTypes ) use ( $dataType, $deserialize ) { + $this->setTemporaryHook( 'WikibaseRepoDataTypes', static function ( array &$dataTypes ) use ( $dataType, $deserialize ) { $dataTypes["PT:$dataType"] = [ 'value-type' => 'string', 'deserializer-builder' => $deserialize, diff --git a/repo/tests/phpunit/includes/Api/MergeItemsTest.php b/repo/tests/phpunit/includes/Api/MergeItemsTest.php index ff14ab0..fc56b9a 100644 --- a/repo/tests/phpunit/includes/Api/MergeItemsTest.php +++ b/repo/tests/phpunit/includes/Api/MergeItemsTest.php @@ -94,7 +94,7 @@ class MergeItemsTest extends MediaWikiIntegrationTestCase { private function getPermissionCheckers(): EntityPermissionChecker { $permissionChecker = $this->createMock( EntityPermissionChecker::class ); - $callback = function ( User $user, $permission ) { + $callback = static function ( User $user, $permission ) { if ( $user->getName() === 'UserWithoutPermission' && $permission === 'edit' ) { return Status::newFatal( 'permissiondenied' ); } else { @@ -118,7 +118,7 @@ class MergeItemsTest extends MediaWikiIntegrationTestCase { $mock->expects( $this->once() ) ->method( 'createRedirect' ) ->with( $redirect->getEntityId(), $redirect->getTargetId() ) - ->willReturnCallback( function() use ( $redirect ) { + ->willReturnCallback( static function() use ( $redirect ) { return EntityRedirectCreationStatus::newGood( [ 'entityRedirect' => $redirect, 'context' => new RequestContext(), @@ -136,7 +136,7 @@ class MergeItemsTest extends MediaWikiIntegrationTestCase { private function getEntityTitleStoreLookup(): EntityTitleStoreLookup { $entityTitleStoreLookup = $this->createMock( EntityTitleStoreLookup::class ); $entityTitleStoreLookup->method( 'getTitleForId' ) - ->willReturnCallback( function( EntityId $entityId ) { + ->willReturnCallback( static function( EntityId $entityId ) { return Title::newFromTextThrow( $entityId->getSerialization() ); } ); @@ -209,7 +209,7 @@ class MergeItemsTest extends MediaWikiIntegrationTestCase { $services->getPermissionManager() ), $errorReporter, - function ( $module ) use ( $apiResultBuilder ) { + static function ( $module ) use ( $apiResultBuilder ) { return $apiResultBuilder; }, [ 'mainItem' => 'Q100', 'auxItem' => 'Q200' ] diff --git a/repo/tests/phpunit/includes/Api/RemoveQualifiersTest.php b/repo/tests/phpunit/includes/Api/RemoveQualifiersTest.php index fff0b4f..b30b8ae 100644 --- a/repo/tests/phpunit/includes/Api/RemoveQualifiersTest.php +++ b/repo/tests/phpunit/includes/Api/RemoveQualifiersTest.php @@ -96,7 +96,7 @@ class RemoveQualifiersTest extends WikibaseApiTestCase { ); } else { $hashes = array_map( - function( Snak $qualifier ) { + static function( Snak $qualifier ) { return $qualifier->getHash(); }, iterator_to_array( $qualifiers ) @@ -127,7 +127,7 @@ class RemoveQualifiersTest extends WikibaseApiTestCase { $qualifiers = $statement->getQualifiers(); $hashes = array_map( - function( Snak $qualifier ) { + static function( Snak $qualifier ) { return $qualifier->getHash(); }, iterator_to_array( $qualifiers ) diff --git a/repo/tests/phpunit/includes/Api/RemoveReferencesTest.php b/repo/tests/phpunit/includes/Api/RemoveReferencesTest.php index 8523d14..bc5a6ab 100644 --- a/repo/tests/phpunit/includes/Api/RemoveReferencesTest.php +++ b/repo/tests/phpunit/includes/Api/RemoveReferencesTest.php @@ -97,7 +97,7 @@ class RemoveReferencesTest extends WikibaseApiTestCase { ); } else { $hashes = array_map( - function( Reference $reference ) { + static function( Reference $reference ) { return $reference->getHash(); }, iterator_to_array( $references ) @@ -127,7 +127,7 @@ class RemoveReferencesTest extends WikibaseApiTestCase { $references = $statement->getReferences(); $hashes = array_map( - function( Reference $reference ) { + static function( Reference $reference ) { return $reference->getHash(); }, iterator_to_array( $references ) diff --git a/repo/tests/phpunit/includes/Api/ResultBuilderTest.php b/repo/tests/phpunit/includes/Api/ResultBuilderTest.php index 869649c..fe9959a 100644 --- a/repo/tests/phpunit/includes/Api/ResultBuilderTest.php +++ b/repo/tests/phpunit/includes/Api/ResultBuilderTest.php @@ -68,7 +68,7 @@ class ResultBuilderTest extends \PHPUnit\Framework\TestCase { $mockPropertyDataTypeLookup = $this->createMock( PropertyDataTypeLookup::class ); $mockPropertyDataTypeLookup->method( 'getDataTypeIdForProperty' ) - ->willReturnCallback( function( NumericPropertyId $id ) { + ->willReturnCallback( static function( NumericPropertyId $id ) { return 'DtIdFor_' . $id->getSerialization(); } ); @@ -1742,7 +1742,7 @@ class ResultBuilderTest extends \PHPUnit\Framework\TestCase { ] ); $calledWithUser = null; - $resultBuilder->addTempUser( $status, function ( $user ) use ( &$calledWithUser ) { + $resultBuilder->addTempUser( $status, static function ( $user ) use ( &$calledWithUser ) { $calledWithUser = $user; return ''; } ); @@ -1768,7 +1768,7 @@ class ResultBuilderTest extends \PHPUnit\Framework\TestCase { ] ); $calledWithUser = null; - $resultBuilder->addTempUser( $status, function ( $user ) use ( &$calledWithUser ) { + $resultBuilder->addTempUser( $status, static function ( $user ) use ( &$calledWithUser ) { $calledWithUser = $user; return 'https://example.com/?foo#bar'; } ); diff --git a/repo/tests/phpunit/includes/Api/SetClaimValueTest.php b/repo/tests/phpunit/includes/Api/SetClaimValueTest.php index bb704c9..fda19fa 100644 --- a/repo/tests/phpunit/includes/Api/SetClaimValueTest.php +++ b/repo/tests/phpunit/includes/Api/SetClaimValueTest.php @@ -265,7 +265,7 @@ class SetClaimValueTest extends WikibaseApiTestCase { $options = new FormatterOptions(); $options->setOption( 'formatter-builders-text/plain', [ - 'VT:wikibase-entityid' => function() use ( $idFormatter ) { + 'VT:wikibase-entityid' => static function() use ( $idFormatter ) { return new EntityIdValueFormatter( $idFormatter ); }, ] ); diff --git a/repo/tests/phpunit/includes/Api/StatementModificationHelperTest.php b/repo/tests/phpunit/includes/Api/StatementModificationHelperTest.php index 5be8571..324c48a 100644 --- a/repo/tests/phpunit/includes/Api/StatementModificationHelperTest.php +++ b/repo/tests/phpunit/includes/Api/StatementModificationHelperTest.php @@ -91,10 +91,10 @@ class StatementModificationHelperTest extends MediaWikiIntegrationTestCase { $changeOpFactoryProvider->getStatementChangeOpFactory(), $apiHelperFactory->getErrorReporter( $apiMain ), $modificationHelper, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getResultBuilder( $module ); }, - function ( $module ) use ( $apiHelperFactory ) { + static function ( $module ) use ( $apiHelperFactory ) { return $apiHelperFactory->getEntitySavingHelper( $module ); }, false, @@ -207,12 +207,12 @@ class StatementModificationHelperTest extends MediaWikiIntegrationTestCase { $errorReporter = $this->createMock( ApiErrorReporter::class ); $errorReporter->method( 'dieException' ) - ->willReturnCallback( function ( $exception, $message ) { + ->willReturnCallback( static function ( $exception, $message ) { throw new RuntimeException( $message ); } ); $errorReporter->method( 'dieError' ) - ->willReturnCallback( function ( $description, $message ) { + ->willReturnCallback( static function ( $description, $message ) { throw new RuntimeException( $message ); } ); diff --git a/repo/tests/phpunit/includes/Api/WikibaseApiTestCase.php b/repo/tests/phpunit/includes/Api/WikibaseApiTestCase.php index 5ad65f7..6efb314 100644 --- a/repo/tests/phpunit/includes/Api/WikibaseApiTestCase.php +++ b/repo/tests/phpunit/includes/Api/WikibaseApiTestCase.php @@ -165,7 +165,7 @@ abstract class WikibaseApiTestCase extends ApiTestCase { 'normalizer-factory-callback' => function (): DataValueNormalizer { $normalizer = $this->createMock( DataValueNormalizer::class ); $normalizer->method( 'normalize' ) - ->willReturnCallback( function ( StringValue $value ): StringValue { + ->willReturnCallback( static function ( StringValue $value ): StringValue { return new StringValue( strtoupper( $value->getValue() ) ); } ); return $normalizer; diff --git a/repo/tests/phpunit/includes/BuilderBasedDataTypeValidatorFactoryTest.php b/repo/tests/phpunit/includes/BuilderBasedDataTypeValidatorFactoryTest.php index 1abe835..7f64aaa 100644 --- a/repo/tests/phpunit/includes/BuilderBasedDataTypeValidatorFactoryTest.php +++ b/repo/tests/phpunit/includes/BuilderBasedDataTypeValidatorFactoryTest.php @@ -30,7 +30,7 @@ class BuilderBasedDataTypeValidatorFactoryTest extends \PHPUnit\Framework\TestCa } public function testInvalidValidatorsArray() { - $factory = new BuilderBasedDataTypeValidatorFactory( [ 'id' => function() { + $factory = new BuilderBasedDataTypeValidatorFactory( [ 'id' => static function() { return 'invalid'; } ] ); $this->expectException( PostconditionException::class ); @@ -38,14 +38,14 @@ class BuilderBasedDataTypeValidatorFactoryTest extends \PHPUnit\Framework\TestCa } public function testEmptyValidatorsArray() { - $factory = new BuilderBasedDataTypeValidatorFactory( [ 'id' => function() { + $factory = new BuilderBasedDataTypeValidatorFactory( [ 'id' => static function() { return []; } ] ); $this->assertSame( [], $factory->getValidators( 'id' ) ); } public function testInvalidValidatorObject() { - $factory = new BuilderBasedDataTypeValidatorFactory( [ 'id' => function() { + $factory = new BuilderBasedDataTypeValidatorFactory( [ 'id' => static function() { return [ 'invalid' ]; } ] ); $this->expectException( PostconditionException::class ); @@ -55,7 +55,7 @@ class BuilderBasedDataTypeValidatorFactoryTest extends \PHPUnit\Framework\TestCa public function testGetValidators() { $validators = [ new CompositeValidator( [] ) ]; $factory = new BuilderBasedDataTypeValidatorFactory( [ - 'id' => function() use ( $validators ) { + 'id' => static function() use ( $validators ) { return $validators; }, ] ); diff --git a/repo/tests/phpunit/includes/ChangeModification/DispatchChangeVisibilityNotificationJobTest.php b/repo/tests/phpunit/includes/ChangeModification/DispatchChangeVisibilityNotificationJobTest.php index f0bab6c..08ed1fb 100644 --- a/repo/tests/phpunit/includes/ChangeModification/DispatchChangeVisibilityNotificationJobTest.php +++ b/repo/tests/phpunit/includes/ChangeModification/DispatchChangeVisibilityNotificationJobTest.php @@ -225,7 +225,7 @@ class DispatchChangeVisibilityNotificationJobTest extends MediaWikiIntegrationTe ->willReturnCallback( function ( string $wikiId ) use ( &$actualJobs ) { $jobQueueGroup = $this->createMock( JobQueueGroup::class ); $jobQueueGroup->method( 'push' ) - ->willReturnCallback( function ( array $jobs ) use ( $wikiId, &$actualJobs ) { + ->willReturnCallback( static function ( array $jobs ) use ( $wikiId, &$actualJobs ) { foreach ( $jobs as $job ) { $actualJobs[$wikiId][] = $job->getParams(); } @@ -241,7 +241,7 @@ class DispatchChangeVisibilityNotificationJobTest extends MediaWikiIntegrationTe $entityIdLookup = $this->createMock( EntityIdLookup::class ); $entityIdLookup->expects( $this->once() ) ->method( 'getEntityIdForTitle' ) - ->willReturnCallback( function ( Title $title ): EntityId { + ->willReturnCallback( static function ( Title $title ): EntityId { return ( new BasicEntityIdParser() )->parse( $title->getText() ); } ); diff --git a/repo/tests/phpunit/includes/ChangeOp/ChangeOpTestMockProvider.php b/repo/tests/phpunit/includes/ChangeOp/ChangeOpTestMockProvider.php index ee614a0..e6248fe 100644 --- a/repo/tests/phpunit/includes/ChangeOp/ChangeOpTestMockProvider.php +++ b/repo/tests/phpunit/includes/ChangeOp/ChangeOpTestMockProvider.php @@ -162,7 +162,7 @@ class ChangeOpTestMockProvider { $mock = $this->createMock( DataTypeFactory::class ); $mock->method( 'getType' ) - ->willReturnCallback( function( $id ) use ( $types ) { + ->willReturnCallback( static function( $id ) use ( $types ) { if ( !isset( $types[$id] ) ) { throw new OutOfBoundsException( "No such type: $id" ); } @@ -192,7 +192,7 @@ class ChangeOpTestMockProvider { $mock = $this->createMock( DataTypeValidatorFactory::class ); $mock->method( 'getValidators' ) - ->willReturnCallback( function( $id ) use ( $validators ) { + ->willReturnCallback( static function( $id ) use ( $validators ) { return $validators; } ); @@ -208,7 +208,7 @@ class ChangeOpTestMockProvider { public function getMockTermValidator() { $mock = $this->createMock( ValueValidator::class ); $mock->method( 'validate' ) - ->willReturnCallback( function( $text ) { + ->willReturnCallback( static function( $text ) { if ( $text === 'INVALID' ) { $error = Error::newError( 'Invalid', '', 'test-invalid' ); return Result::newError( [ $error ] ); @@ -303,7 +303,7 @@ class ChangeOpTestMockProvider { $mock = $this->createMock( SiteLinkConflictLookup::class ); $mock->method( 'getConflictsForItem' ) - ->willReturnCallback( function ( ItemId $itemId, SiteLinkList $siteLinkList ) { + ->willReturnCallback( static function ( ItemId $itemId, SiteLinkList $siteLinkList ) { $conflicts = []; foreach ( $siteLinkList->toArray() as $link ) { diff --git a/repo/tests/phpunit/includes/ChangeOp/ChangeOpsMergeTest.php b/repo/tests/phpunit/includes/ChangeOp/ChangeOpsMergeTest.php index d3f7143..dd1688a 100644 --- a/repo/tests/phpunit/includes/ChangeOp/ChangeOpsMergeTest.php +++ b/repo/tests/phpunit/includes/ChangeOp/ChangeOpsMergeTest.php @@ -74,7 +74,7 @@ class ChangeOpsMergeTest extends MediaWikiIntegrationTestCase { // A validator which makes sure that no site link is for page 'DUPE' $siteLinkUniquenessValidator = $this->createMock( EntityValidator::class ); $siteLinkUniquenessValidator->method( 'validateEntity' ) - ->willReturnCallback( function( Item $item ) { + ->willReturnCallback( static function( Item $item ) { foreach ( $item->getSiteLinkList()->toArray() as $siteLink ) { if ( $siteLink->getPageName() === 'DUPE' ) { return Result::newError( [ Error::newError( 'SiteLink conflict' ) ] ); diff --git a/repo/tests/phpunit/includes/ChangeOp/ChangeOpsTest.php b/repo/tests/phpunit/includes/ChangeOp/ChangeOpsTest.php index 584dbf5..829f198 100644 --- a/repo/tests/phpunit/includes/ChangeOp/ChangeOpsTest.php +++ b/repo/tests/phpunit/includes/ChangeOp/ChangeOpsTest.php @@ -115,7 +115,7 @@ class ChangeOpsTest extends \PHPUnit\Framework\TestCase { $newLabel = 'newLabel'; $newDescription = 'newDescription'; - $changeOpsFactory = function ( self $self ) use ( $language, $newLabel, $newDescription ): ChangeOps { + $changeOpsFactory = static function ( self $self ) use ( $language, $newLabel, $newDescription ): ChangeOps { $validatorFactory = $self->getTermValidatorFactory(); $changeOps = new ChangeOps(); $changeOps->add( new ChangeOpLabel( $language, $newLabel, $validatorFactory ) ); @@ -193,14 +193,14 @@ class ChangeOpsTest extends \PHPUnit\Framework\TestCase { $changeOp = $this->createMock( ChangeOp::class ); $changeOp->method( 'validate' ) - ->willReturnCallback( function( Item $item ) { + ->willReturnCallback( static function( Item $item ) { // Fail when the label is already set (by a previous apply call). return $item->getFingerprint()->hasLabel( 'en' ) ? Result::newError( [] ) : Result::newSuccess(); } ); $changeOp->method( 'apply' ) - ->willReturnCallback( function( Item $item ) { + ->willReturnCallback( static function( Item $item ) { $item->setLabel( 'en', 'Label' ); } ); diff --git a/repo/tests/phpunit/includes/ChangeOp/Deserialization/AliasChangeOpDeserializationTester.php b/repo/tests/phpunit/includes/ChangeOp/Deserialization/AliasChangeOpDeserializationTester.php index dd36732..b81e145 100644 --- a/repo/tests/phpunit/includes/ChangeOp/Deserialization/AliasChangeOpDeserializationTester.php +++ b/repo/tests/phpunit/includes/ChangeOp/Deserialization/AliasChangeOpDeserializationTester.php @@ -51,7 +51,7 @@ trait AliasChangeOpDeserializationTester { $entity = $this->getEntityWithExistingAliases(); $existingAliases = $entity->getAliasGroups()->getByLanguage( 'en' )->getAliases(); $changeOp = $this->getChangeOpDeserializer()->createEntityChangeOp( [ - 'aliases' => array_map( function( $alias ) { + 'aliases' => array_map( static function( $alias ) { return [ 'language' => 'en', 'value' => $alias, 'remove' => '' ]; }, $existingAliases ), ] ); diff --git a/repo/tests/phpunit/includes/ChangeOp/Deserialization/FingerprintChangeOpDeserializerTest.php b/repo/tests/phpunit/includes/ChangeOp/Deserialization/FingerprintChangeOpDeserializerTest.php index 88ef964..c78058b 100644 --- a/repo/tests/phpunit/includes/ChangeOp/Deserialization/FingerprintChangeOpDeserializerTest.php +++ b/repo/tests/phpunit/includes/ChangeOp/Deserialization/FingerprintChangeOpDeserializerTest.php @@ -31,7 +31,7 @@ class FingerprintChangeOpDeserializerTest extends \PHPUnit\Framework\TestCase { private $aliasesChangeOpDeserializerMock; protected function setUp(): void { - $createNullChangeOpCallback = function ( $changeRequest ) { + $createNullChangeOpCallback = static function ( $changeRequest ) { return new NullChangeOp(); }; diff --git a/repo/tests/phpunit/includes/ChangeOp/Deserialization/SiteLinkBadgeChangeOpSerializationValidatorTest.php b/repo/tests/phpunit/includes/ChangeOp/Deserialization/SiteLinkBadgeChangeOpSerializationValidatorTest.php index 335ed6d..0776530 100644 --- a/repo/tests/phpunit/includes/ChangeOp/Deserialization/SiteLinkBadgeChangeOpSerializationValidatorTest.php +++ b/repo/tests/phpunit/includes/ChangeOp/Deserialization/SiteLinkBadgeChangeOpSerializationValidatorTest.php @@ -33,7 +33,7 @@ class SiteLinkBadgeChangeOpSerializationValidatorTest extends \PHPUnit\Framework ); ChangeOpDeserializationAssert::assertThrowsChangeOpDeserializationException( - function() use ( $validator, $serialization ) { + static function() use ( $validator, $serialization ) { $validator->validateBadgeSerialization( $serialization ); }, 'not-recognized-string' @@ -58,7 +58,7 @@ class SiteLinkBadgeChangeOpSerializationValidatorTest extends \PHPUnit\Framework ); ChangeOpDeserializationAssert::assertThrowsChangeOpDeserializationException( - function() use ( $validator, $serialization ) { + static function() use ( $validator, $serialization ) { $validator->validateBadgeSerialization( $serialization ); }, 'invalid-entity-id' @@ -75,7 +75,7 @@ class SiteLinkBadgeChangeOpSerializationValidatorTest extends \PHPUnit\Framework ); ChangeOpDeserializationAssert::assertThrowsChangeOpDeserializationException( - function() use ( $validator, $invalidBadgeItemId ) { + static function() use ( $validator, $invalidBadgeItemId ) { $validator->validateBadgeSerialization( [ $invalidBadgeItemId ] ); }, 'not-badge' @@ -95,7 +95,7 @@ class SiteLinkBadgeChangeOpSerializationValidatorTest extends \PHPUnit\Framework ); ChangeOpDeserializationAssert::assertThrowsChangeOpDeserializationException( - function() use ( $validator, $badgeItemId ) { + static function() use ( $validator, $badgeItemId ) { $validator->validateBadgeSerialization( [ $badgeItemId ] ); }, 'no-such-entity' @@ -119,7 +119,7 @@ class SiteLinkBadgeChangeOpSerializationValidatorTest extends \PHPUnit\Framework ); ChangeOpDeserializationAssert::assertThrowsChangeOpDeserializationException( - function() use ( $validator, $badgeItemId ) { + static function() use ( $validator, $badgeItemId ) { $validator->validateBadgeSerialization( [ $badgeItemId ] ); }, 'no-such-entity' diff --git a/repo/tests/phpunit/includes/ChangeOp/Deserialization/SiteLinksChangeOpDeserializerTest.php b/repo/tests/phpunit/includes/ChangeOp/Deserialization/SiteLinksChangeOpDeserializerTest.php index d13ba69..b91cfcb 100644 --- a/repo/tests/phpunit/includes/ChangeOp/Deserialization/SiteLinksChangeOpDeserializerTest.php +++ b/repo/tests/phpunit/includes/ChangeOp/Deserialization/SiteLinksChangeOpDeserializerTest.php @@ -67,7 +67,7 @@ class SiteLinksChangeOpDeserializerTest extends \PHPUnit\Framework\TestCase { $deserializer = $this->newSiteLinksChangeOpDeserializer(); ChangeOpDeserializationAssert::assertThrowsChangeOpDeserializationException( - function() use ( $deserializer ) { + static function() use ( $deserializer ) { $deserializer->createEntityChangeOp( [ 'sitelinks' => 'foo' ] ); }, 'not-recognized-array' @@ -91,7 +91,7 @@ class SiteLinksChangeOpDeserializerTest extends \PHPUnit\Framework\TestCase { $deserializer = $this->newSiteLinksChangeOpDeserializer(); ChangeOpDeserializationAssert::assertThrowsChangeOpDeserializationException( - function() use ( $deserializer, $serialization ) { + static function() use ( $deserializer, $serialization ) { $deserializer->createEntityChangeOp( [ 'sitelinks' => [ self::SITE_ID => $serialization ] ] ); }, $expectedError @@ -102,7 +102,7 @@ class SiteLinksChangeOpDeserializerTest extends \PHPUnit\Framework\TestCase { $deserializer = $this->newSiteLinksChangeOpDeserializer(); ChangeOpDeserializationAssert::assertThrowsChangeOpDeserializationException( - function() use ( $deserializer ) { + static function() use ( $deserializer ) { $deserializer->createEntityChangeOp( [ 'sitelinks' => [ self::SITE_ID => [ 'site' => 'someotherwiki' ] ] ] ); }, 'inconsistent-site' @@ -113,7 +113,7 @@ class SiteLinksChangeOpDeserializerTest extends \PHPUnit\Framework\TestCase { $deserializer = $this->newSiteLinksChangeOpDeserializer(); ChangeOpDeserializationAssert::assertThrowsChangeOpDeserializationException( - function() use ( $deserializer ) { + static function() use ( $deserializer ) { $deserializer->createEntityChangeOp( [ 'sitelinks' => [ 'someotherwiki' => [ 'site' => 'someotherwiki' ] ] ] ); }, 'not-recognized-site' @@ -140,7 +140,7 @@ class SiteLinksChangeOpDeserializerTest extends \PHPUnit\Framework\TestCase { ); ChangeOpDeserializationAssert::assertThrowsChangeOpDeserializationException( - function() use ( $deserializer ) { + static function() use ( $deserializer ) { $deserializer->createEntityChangeOp( [ 'sitelinks' => [ self::SITE_ID => [ 'site' => self::SITE_ID, 'badges' => [ 'BAD' ] ] ] ] ); @@ -353,7 +353,7 @@ class SiteLinksChangeOpDeserializerTest extends \PHPUnit\Framework\TestCase { $deserializer = $this->newSiteLinksChangeOpDeserializer( $item ); ChangeOpDeserializationAssert::assertThrowsChangeOpDeserializationException( - function () use ( $deserializer, $item ) { + static function () use ( $deserializer, $item ) { $deserializer->createEntityChangeOp( [ 'id' => $item->getId()->getSerialization(), diff --git a/repo/tests/phpunit/includes/ChangeOp/EntityChangeOpProviderTest.php b/repo/tests/phpunit/includes/ChangeOp/EntityChangeOpProviderTest.php index 746b4e9..74e6ee5 100644 --- a/repo/tests/phpunit/includes/ChangeOp/EntityChangeOpProviderTest.php +++ b/repo/tests/phpunit/includes/ChangeOp/EntityChangeOpProviderTest.php @@ -22,7 +22,7 @@ class EntityChangeOpProviderTest extends \PHPUnit\Framework\TestCase { return [ 'not a callback as a value' => [ [ 'entity-type' => 'foo' ] ], 'not a string as a key' => [ [ - 100 => function() { + 100 => static function() { }, ] ], ]; @@ -49,7 +49,7 @@ class EntityChangeOpProviderTest extends \PHPUnit\Framework\TestCase { $deserializer = $this->getChangeOpDeserializer(); $changeOpProvider = new EntityChangeOpProvider( [ - 'entity-type' => function() use ( $deserializer ) { + 'entity-type' => static function() use ( $deserializer ) { return $deserializer; }, ] ); @@ -61,7 +61,7 @@ class EntityChangeOpProviderTest extends \PHPUnit\Framework\TestCase { public function testGivenCallbackNotReturningChangeOpDeserializer_exceptionIsThrown() { $changeOpProvider = new EntityChangeOpProvider( [ - 'entity-type' => function() { + 'entity-type' => static function() { return (object)[]; }, ] ); @@ -75,7 +75,7 @@ class EntityChangeOpProviderTest extends \PHPUnit\Framework\TestCase { $deserializer = $this->getChangeOpDeserializer(); $changeOpProvider = new EntityChangeOpProvider( [ - 'entity-type' => function() use ( $deserializer ) { + 'entity-type' => static function() use ( $deserializer ) { return $deserializer; }, ] ); diff --git a/repo/tests/phpunit/includes/Content/ContentHandlerEntityIdLookupTest.php b/repo/tests/phpunit/includes/Content/ContentHandlerEntityIdLookupTest.php index 12e1e52..146d102 100644 --- a/repo/tests/phpunit/includes/Content/ContentHandlerEntityIdLookupTest.php +++ b/repo/tests/phpunit/includes/Content/ContentHandlerEntityIdLookupTest.php @@ -56,10 +56,10 @@ class ContentHandlerEntityIdLookupTest extends MediaWikiIntegrationTestCase { 'property' => PropertyContent::CONTENT_MODEL_ID, ], [ - 'item' => function() { + 'item' => static function() { return WikibaseRepo::getItemHandler(); }, - 'property' => function() { + 'property' => static function() { return WikibaseRepo::getPropertyHandler(); }, ] diff --git a/repo/tests/phpunit/includes/Content/ContentHandlerEntityTitleLookupTest.php b/repo/tests/phpunit/includes/Content/ContentHandlerEntityTitleLookupTest.php index d9705ba..b271ea9 100644 --- a/repo/tests/phpunit/includes/Content/ContentHandlerEntityTitleLookupTest.php +++ b/repo/tests/phpunit/includes/Content/ContentHandlerEntityTitleLookupTest.php @@ -49,10 +49,10 @@ class ContentHandlerEntityTitleLookupTest extends MediaWikiIntegrationTestCase { 'property' => PropertyContent::CONTENT_MODEL_ID, ], [ - 'item' => function() { + 'item' => static function() { return WikibaseRepo::getItemHandler(); }, - 'property' => function() { + 'property' => static function() { return WikibaseRepo::getPropertyHandler(); }, ] diff --git a/repo/tests/phpunit/includes/Content/DataUpdateAdapterTest.php b/repo/tests/phpunit/includes/Content/DataUpdateAdapterTest.php index a671626..397ed90 100644 --- a/repo/tests/phpunit/includes/Content/DataUpdateAdapterTest.php +++ b/repo/tests/phpunit/includes/Content/DataUpdateAdapterTest.php @@ -23,7 +23,7 @@ class DataUpdateAdapterTest extends \PHPUnit\Framework\TestCase { $reporter->expects( $this->once() ) ->method( 'reportMessage' ); - $update = new DataUpdateAdapter( function() { + $update = new DataUpdateAdapter( static function() { throw new RuntimeException( 'Test' ); } ); $update->setExceptionHandler( new ReportingExceptionHandler( $reporter ) ); @@ -38,7 +38,7 @@ class DataUpdateAdapterTest extends \PHPUnit\Framework\TestCase { $reporter->expects( $this->once() ) ->method( 'reportMessage' ); - $update = new DataUpdateAdapter( function() { + $update = new DataUpdateAdapter( static function() { throw new DBError( null, 'db error' ); } ); $update->setExceptionHandler( new ReportingExceptionHandler( $reporter ) ); diff --git a/repo/tests/phpunit/includes/Content/EntityContentFactoryTest.php b/repo/tests/phpunit/includes/Content/EntityContentFactoryTest.php index f57ae82..8d4236b 100644 --- a/repo/tests/phpunit/includes/Content/EntityContentFactoryTest.php +++ b/repo/tests/phpunit/includes/Content/EntityContentFactoryTest.php @@ -116,10 +116,10 @@ class EntityContentFactoryTest extends MediaWikiIntegrationTestCase { 'property' => PropertyContent::CONTENT_MODEL_ID, ], [ - 'item' => function() { + 'item' => static function() { return WikibaseRepo::getItemHandler(); }, - 'property' => function() { + 'property' => static function() { return WikibaseRepo::getPropertyHandler(); }, ] diff --git a/repo/tests/phpunit/includes/Content/EntityContentTestCase.php b/repo/tests/phpunit/includes/Content/EntityContentTestCase.php index 33d75cb..39df54f 100644 --- a/repo/tests/phpunit/includes/Content/EntityContentTestCase.php +++ b/repo/tests/phpunit/includes/Content/EntityContentTestCase.php @@ -175,7 +175,7 @@ abstract class EntityContentTestCase extends MediaWikiIntegrationTestCase { ], ], 'labels' => [ - function ( self $self ) { + static function ( self $self ) { $labeledEntityContent = $self->newBlank(); $self->setLabel( $labeledEntityContent->getEntity(), 'de', 'xyz' ); return $labeledEntityContent; diff --git a/repo/tests/phpunit/includes/Content/ItemContentTest.php b/repo/tests/phpunit/includes/Content/ItemContentTest.php index 3ae1041..d7068d9 100644 --- a/repo/tests/phpunit/includes/Content/ItemContentTest.php +++ b/repo/tests/phpunit/includes/Content/ItemContentTest.php @@ -95,7 +95,7 @@ class ItemContentTest extends EntityContentTestCase { $propertyHolder = new EntityInstanceHolder( Property::newFromType( 'string' ) ); - $badTitleFactory = function ( self $self ) { + $badTitleFactory = static function ( self $self ) { $badTitle = $self->createMock( Title::class ); $badTitle->method( 'getContentModel' ) ->willReturn( 'bad content model' ); @@ -372,7 +372,7 @@ class ItemContentTest extends EntityContentTestCase { ); $cases['same redir'] = [ - function ( self $self ) use ( $q10 ) { + static function ( self $self ) use ( $q10 ) { $redir = $self->newRedirect( $q10, new ItemId( 'Q17' ) ); return [ $redir, $redir ]; }, @@ -474,7 +474,7 @@ class ItemContentTest extends EntityContentTestCase { $labels1->getItem()->setLabel( 'en', 'Foo' ); $cases['same redirect'] = [ - function ( self $self ) { + static function ( self $self ) { $redir = $self->newRedirect( new ItemId( 'Q5' ), new ItemId( 'Q7' ) ); return [ $redir, $redir ]; }, diff --git a/repo/tests/phpunit/includes/Diff/BasicEntityDiffVisualizerTest.php b/repo/tests/phpunit/includes/Diff/BasicEntityDiffVisualizerTest.php index e94ca69..fec9069 100644 --- a/repo/tests/phpunit/includes/Diff/BasicEntityDiffVisualizerTest.php +++ b/repo/tests/phpunit/includes/Diff/BasicEntityDiffVisualizerTest.php @@ -93,7 +93,7 @@ class BasicEntityDiffVisualizerTest extends MediaWikiIntegrationTestCase { $mock = $this->createMock( MessageLocalizer::class ); $mock->method( 'msg' ) - ->willReturnCallback( function ( $key ) { + ->willReturnCallback( static function ( $key ) { return new RawMessage( "($key)" ); } ); diff --git a/repo/tests/phpunit/includes/Diff/ClaimDifferenceVisualizerTest.php b/repo/tests/phpunit/includes/Diff/ClaimDifferenceVisualizerTest.php index 6f4f48d..21ffbc0 100644 --- a/repo/tests/phpunit/includes/Diff/ClaimDifferenceVisualizerTest.php +++ b/repo/tests/phpunit/includes/Diff/ClaimDifferenceVisualizerTest.php @@ -37,23 +37,23 @@ class ClaimDifferenceVisualizerTest extends MediaWikiIntegrationTestCase { $instance = $this->createMock( DifferencesSnakVisualizer::class ); $instance->method( 'getPropertyAndDetailedValue' ) - ->willReturnCallback( function( PropertyValueSnak $snak ) { + ->willReturnCallback( static function( PropertyValueSnak $snak ) { return $snak->getPropertyId()->getSerialization() . ': ' . $snak->getDataValue()->getValue() . ' (DETAILED)'; } ); $instance->method( 'getDetailedValue' ) - ->willReturnCallback( function( PropertyValueSnak $snak = null ) { + ->willReturnCallback( static function( PropertyValueSnak $snak = null ) { return $snak === null ? null : $snak->getDataValue()->getValue() . ' (DETAILED)'; } ); $instance->method( 'getPropertyHeader' ) - ->willReturnCallback( function( Snak $snak ) { + ->willReturnCallback( static function( Snak $snak ) { return 'property / ' . $snak->getPropertyId()->getSerialization(); } ); $instance->method( 'getPropertyAndValueHeader' ) - ->willReturnCallback( function( PropertyValueSnak $snak ) { + ->willReturnCallback( static function( PropertyValueSnak $snak ) { return 'property / ' . $snak->getPropertyId()->getSerialization() . ': ' . $snak->getDataValue()->getValue(); } ); diff --git a/repo/tests/phpunit/includes/Diff/DispatchingEntityDiffVisualizerTest.php b/repo/tests/phpunit/includes/Diff/DispatchingEntityDiffVisualizerTest.php index c532b5e..18d0310 100644 --- a/repo/tests/phpunit/includes/Diff/DispatchingEntityDiffVisualizerTest.php +++ b/repo/tests/phpunit/includes/Diff/DispatchingEntityDiffVisualizerTest.php @@ -34,10 +34,10 @@ class DispatchingEntityDiffVisualizerTest extends \PHPUnit\Framework\TestCase { ->willReturn( 'PrOPERTY DIFF' ); $factory = $this->newFactory( [ - 'item' => function () use ( $itemVisualizer ) { + 'item' => static function () use ( $itemVisualizer ) { return $itemVisualizer; }, - 'property' => function () use ( $propertyVisualizer ) { + 'property' => static function () use ( $propertyVisualizer ) { return $propertyVisualizer; }, ] ); diff --git a/repo/tests/phpunit/includes/Diff/EntityDiffVisualizerFactoryTest.php b/repo/tests/phpunit/includes/Diff/EntityDiffVisualizerFactoryTest.php index dc3c02d..609f597 100644 --- a/repo/tests/phpunit/includes/Diff/EntityDiffVisualizerFactoryTest.php +++ b/repo/tests/phpunit/includes/Diff/EntityDiffVisualizerFactoryTest.php @@ -44,7 +44,7 @@ class EntityDiffVisualizerFactoryTest extends \PHPUnit\Framework\TestCase { $dummyVisualizer = $this->createMock( EntityDiffVisualizer::class ); $factory = $this->newFactory( [ - 'item' => function () use ( $dummyVisualizer ) { + 'item' => static function () use ( $dummyVisualizer ) { return $dummyVisualizer; }, ] ); @@ -54,7 +54,7 @@ class EntityDiffVisualizerFactoryTest extends \PHPUnit\Framework\TestCase { public function testGivenInstantiatorDoesReturnDiffVisualizer_factoryThrowsException() { $factory = $this->newFactory( [ - 'item' => function () { + 'item' => static function () { return 'WOOO'; }, ] ); @@ -76,7 +76,7 @@ class EntityDiffVisualizerFactoryTest extends \PHPUnit\Framework\TestCase { public static function provideInvalidConstructorArgs(): iterable { return [ [ 'non-string key' => [ - 123 => function () { + 123 => static function () { throw new \Exception( 'this should never be called' ); }, ] ], diff --git a/repo/tests/phpunit/includes/Diff/ItemDiffVisualizerTest.php b/repo/tests/phpunit/includes/Diff/ItemDiffVisualizerTest.php index 3bf0992..b5aa959 100644 --- a/repo/tests/phpunit/includes/Diff/ItemDiffVisualizerTest.php +++ b/repo/tests/phpunit/includes/Diff/ItemDiffVisualizerTest.php @@ -87,7 +87,7 @@ class ItemDiffVisualizerTest extends MediaWikiIntegrationTestCase { $mock = $this->createMock( MessageLocalizer::class ); $mock->method( 'msg' ) - ->willReturnCallback( function ( $key ) { + ->willReturnCallback( static function ( $key ) { return new RawMessage( "($key)" ); } ); diff --git a/repo/tests/phpunit/includes/Dumpers/JsonDataTypeInjectorTest.php b/repo/tests/phpunit/includes/Dumpers/JsonDataTypeInjectorTest.php index c7e7692..dc79232 100644 --- a/repo/tests/phpunit/includes/Dumpers/JsonDataTypeInjectorTest.php +++ b/repo/tests/phpunit/includes/Dumpers/JsonDataTypeInjectorTest.php @@ -124,7 +124,7 @@ class JsonDataTypeInjectorTest extends TestCase { private function getMockPropertyDataTypeLookup() { $mockDataTypeLookup = $this->createMock( PropertyDataTypeLookup::class ); $mockDataTypeLookup->method( 'getDataTypeIdForProperty' ) - ->willReturnCallback( function( PropertyId $id ) { + ->willReturnCallback( static function( PropertyId $id ) { return 'DtIdFor_' . $id->getSerialization(); } ); return $mockDataTypeLookup; diff --git a/repo/tests/phpunit/includes/Dumpers/JsonDumpGeneratorTest.php b/repo/tests/phpunit/includes/Dumpers/JsonDumpGeneratorTest.php index a7a16da..99d05ae 100644 --- a/repo/tests/phpunit/includes/Dumpers/JsonDumpGeneratorTest.php +++ b/repo/tests/phpunit/includes/Dumpers/JsonDumpGeneratorTest.php @@ -116,7 +116,7 @@ class JsonDumpGeneratorTest extends \PHPUnit\Framework\TestCase { $entityRevisionLookup = $this->createMock( EntityRevisionLookup::class ); $entityRevisionLookup->method( 'getEntityRevision' ) - ->willReturnCallback( function( EntityId $id ) use ( $entityRevisions, $missingIds, $redirectedIds ) { + ->willReturnCallback( static function( EntityId $id ) use ( $entityRevisions, $missingIds, $redirectedIds ) { if ( in_array( $id, $missingIds ) ) { return null; } @@ -271,7 +271,7 @@ class JsonDumpGeneratorTest extends \PHPUnit\Framework\TestCase { private function getEntityRevisionLookupThrows( Exception $ex ) { $entityRevisionLookup = $this->createMock( EntityRevisionLookup::class ); $entityRevisionLookup->method( 'getEntityRevision' ) - ->willReturnCallback( function( EntityId $id ) use ( $ex ) { + ->willReturnCallback( static function( EntityId $id ) use ( $ex ) { throw $ex; } ); @@ -382,7 +382,7 @@ class JsonDumpGeneratorTest extends \PHPUnit\Framework\TestCase { $actualIds = array_merge( $actualIds, $shardIds ); } - $expectedIds = array_map( function( EntityId $id ) { + $expectedIds = array_map( static function( EntityId $id ) { return $id->getSerialization(); }, $ids ); diff --git a/repo/tests/phpunit/includes/Dumpers/RdfDumpGeneratorTest.php b/repo/tests/phpunit/includes/Dumpers/RdfDumpGeneratorTest.php index 22226e2..91f7856 100644 --- a/repo/tests/phpunit/includes/Dumpers/RdfDumpGeneratorTest.php +++ b/repo/tests/phpunit/includes/Dumpers/RdfDumpGeneratorTest.php @@ -235,7 +235,7 @@ class RdfDumpGeneratorTest extends MediaWikiIntegrationTestCase { */ private function getStubRdfBuilderFactoryCallbacks(): array { return [ - 'property' => function( + 'property' => static function( RdfVocabulary $vocabulary, RdfWriter $writer ) { @@ -280,7 +280,7 @@ class RdfDumpGeneratorTest extends MediaWikiIntegrationTestCase { $entityRevisionLookup = $this->createMock( EntityRevisionLookup::class ); $entityRevisionLookup->method( 'getEntityRevision' ) - ->willReturnCallback( function( EntityId $id ) use ( $entityRevisions, $redirects ) { + ->willReturnCallback( static function( EntityId $id ) use ( $entityRevisions, $redirects ) { $key = $id->getSerialization(); if ( isset( $redirects[$key] ) ) { diff --git a/repo/tests/phpunit/includes/EntityReferenceExtractors/EntityReferenceExtractorDelegatorTest.php b/repo/tests/phpunit/includes/EntityReferenceExtractors/EntityReferenceExtractorDelegatorTest.php index 7e28b81..eb79ca9 100644 --- a/repo/tests/phpunit/includes/EntityReferenceExtractors/EntityReferenceExtractorDelegatorTest.php +++ b/repo/tests/phpunit/includes/EntityReferenceExtractors/EntityReferenceExtractorDelegatorTest.php @@ -41,7 +41,7 @@ class EntityReferenceExtractorDelegatorTest extends TestCase { 'property' => function () { $this->fail( 'This should not be called' ); }, - 'item' => function () use ( $mockEntityReferenceExtractor ) { + 'item' => static function () use ( $mockEntityReferenceExtractor ) { return $mockEntityReferenceExtractor; }, ], $this->createMock( StatementEntityReferenceExtractor::class ) ); @@ -82,7 +82,7 @@ class EntityReferenceExtractorDelegatorTest extends TestCase { return [ [ [ 'string', 'string' ] ], [ [ 1, 2, 3 ] ], - [ [ function () { + [ [ static function () { }, null ] ], ]; } diff --git a/repo/tests/phpunit/includes/EntityReferenceExtractors/StatementEntityReferenceExtractorTest.php b/repo/tests/phpunit/includes/EntityReferenceExtractors/StatementEntityReferenceExtractorTest.php index dc5a3bc..9e81e16 100644 --- a/repo/tests/phpunit/includes/EntityReferenceExtractors/StatementEntityReferenceExtractorTest.php +++ b/repo/tests/phpunit/includes/EntityReferenceExtractors/StatementEntityReferenceExtractorTest.php @@ -106,7 +106,7 @@ class StatementEntityReferenceExtractorTest extends TestCase { private function getMockEntityIdParser() { $entityIdParser = $this->createMock( SuffixEntityIdParser::class ); $entityIdParser->method( 'parse' ) - ->willReturnCallback( function ( $id ) { + ->willReturnCallback( static function ( $id ) { return new ItemId( substr( $id, strlen( self::UNIT_PREFIX ) ) ); diff --git a/repo/tests/phpunit/includes/EntityTypesTest.php b/repo/tests/phpunit/includes/EntityTypesTest.php index 7f05768..03a9e1e 100644 --- a/repo/tests/phpunit/includes/EntityTypesTest.php +++ b/repo/tests/phpunit/includes/EntityTypesTest.php @@ -26,7 +26,7 @@ class EntityTypesTest extends \PHPUnit\Framework\TestCase { public static function provideEntityTypes() { return array_map( - function( $entityType ) { + static function( $entityType ) { return [ $entityType ]; }, array_keys( self::getRegistry() ) diff --git a/repo/tests/phpunit/includes/FederatedProperties/Api/RemoveClaimsTest.php b/repo/tests/phpunit/includes/FederatedProperties/Api/RemoveClaimsTest.php index 252a425..f5154bd 100644 --- a/repo/tests/phpunit/includes/FederatedProperties/Api/RemoveClaimsTest.php +++ b/repo/tests/phpunit/includes/FederatedProperties/Api/RemoveClaimsTest.php @@ -47,7 +47,7 @@ class RemoveClaimsTest extends FederatedPropertiesApiTestCase { $params = [ 'action' => 'wbremoveclaims', - 'claim' => implode( '|', array_map( function( $statement ) { + 'claim' => implode( '|', array_map( static function( $statement ) { return $statement->getGuid(); }, $statements ) ), ]; diff --git a/repo/tests/phpunit/includes/FederatedProperties/Api/RemoveQualifiersTest.php b/repo/tests/phpunit/includes/FederatedProperties/Api/RemoveQualifiersTest.php index d17ef25..501396b 100644 --- a/repo/tests/phpunit/includes/FederatedProperties/Api/RemoveQualifiersTest.php +++ b/repo/tests/phpunit/includes/FederatedProperties/Api/RemoveQualifiersTest.php @@ -43,7 +43,7 @@ class RemoveQualifiersTest extends FederatedPropertiesApiTestCase { $entity->getStatements()->addStatement( $statement ); $hashes = array_map( - function( Snak $qualifier ) { + static function( Snak $qualifier ) { return $qualifier->getHash(); }, iterator_to_array( $statement->getQualifiers() ) diff --git a/repo/tests/phpunit/includes/FederatedProperties/ApiEntitySearchHelperTest.php b/repo/tests/phpunit/includes/FederatedProperties/ApiEntitySearchHelperTest.php index 7d780d0..29c058d 100644 --- a/repo/tests/phpunit/includes/FederatedProperties/ApiEntitySearchHelperTest.php +++ b/repo/tests/phpunit/includes/FederatedProperties/ApiEntitySearchHelperTest.php @@ -223,7 +223,7 @@ class ApiEntitySearchHelperTest extends TestCase { } private function getResponseDataForId( array $searchResponses, $resultId ) { - $searchResponses = array_filter( $searchResponses, function ( $response ) use ( $resultId ) { + $searchResponses = array_filter( $searchResponses, static function ( $response ) use ( $resultId ) { return $response->id === $resultId; } ); if ( count( $searchResponses ) > 1 ) { diff --git a/repo/tests/phpunit/includes/FederatedProperties/Hooks/DifferenceEngineViewHeaderHookHandlerTest.php b/repo/tests/phpunit/includes/FederatedProperties/Hooks/DifferenceEngineViewHeaderHookHandlerTest.php index 035aa46..f119553 100644 --- a/repo/tests/phpunit/includes/FederatedProperties/Hooks/DifferenceEngineViewHeaderHookHandlerTest.php +++ b/repo/tests/phpunit/includes/FederatedProperties/Hooks/DifferenceEngineViewHeaderHookHandlerTest.php @@ -173,11 +173,11 @@ class DifferenceEngineViewHeaderHookHandlerTest extends TestCase { } private function getRevisionRecords() { - $availableProperties = array_map( function( $snak ) { + $availableProperties = array_map( static function( $snak ) { return $snak->getPropertyId(); }, $this->entity->getStatements()->getAllSnaks() ); - $rows = array_map( function ( $prop ) { + $rows = array_map( static function ( $prop ) { $object = new MutableRevisionRecord( Title::newFromTextThrow( $prop->getSerialization() ) ); $object->setComment( new CommentStoreComment( null, diff --git a/repo/tests/phpunit/includes/FederatedProperties/ParserOutput/FederatedPropertiesPrefetchingEntityParserOutputGeneratorDecoratorTest.php b/repo/tests/phpunit/includes/FederatedProperties/ParserOutput/FederatedPropertiesPrefetchingEntityParserOutputGeneratorDecoratorTest.php index b0f7750..7594fce 100644 --- a/repo/tests/phpunit/includes/FederatedProperties/ParserOutput/FederatedPropertiesPrefetchingEntityParserOutputGeneratorDecoratorTest.php +++ b/repo/tests/phpunit/includes/FederatedProperties/ParserOutput/FederatedPropertiesPrefetchingEntityParserOutputGeneratorDecoratorTest.php @@ -83,10 +83,10 @@ class FederatedPropertiesPrefetchingEntityParserOutputGeneratorDecoratorTest ext ) use ( $expectedIds ) { - $expectedIdStrings = array_map( function( EntityId $id ) { + $expectedIdStrings = array_map( static function( EntityId $id ) { return $id->getSerialization(); }, $expectedIds ); - $entityIdStrings = array_map( function( EntityId $id ) { + $entityIdStrings = array_map( static function( EntityId $id ) { return $id->getSerialization(); }, $entityIds ); diff --git a/repo/tests/phpunit/includes/Hooks/EditFilterHookRunnerTest.php b/repo/tests/phpunit/includes/Hooks/EditFilterHookRunnerTest.php index 84e90c8..9a7dc0b 100644 --- a/repo/tests/phpunit/includes/Hooks/EditFilterHookRunnerTest.php +++ b/repo/tests/phpunit/includes/Hooks/EditFilterHookRunnerTest.php @@ -40,7 +40,7 @@ class EditFilterHookRunnerTest extends MediaWikiIntegrationTestCase { $entityTitleLookup = $this->createMock( EntityTitleStoreLookup::class ); $entityTitleLookup->method( 'getTitleForId' ) - ->willReturnCallback( function( EntityId $id ) { + ->willReturnCallback( static function( EntityId $id ) { return Title::newFromTextThrow( $id->getSerialization(), NS_MAIN ); } ); diff --git a/repo/tests/phpunit/includes/Hooks/Formatters/EntityLinkFormatterFactoryTest.php b/repo/tests/phpunit/includes/Hooks/Formatters/EntityLinkFormatterFactoryTest.php index 4277bff..3e7ce64 100644 --- a/repo/tests/phpunit/includes/Hooks/Formatters/EntityLinkFormatterFactoryTest.php +++ b/repo/tests/phpunit/includes/Hooks/Formatters/EntityLinkFormatterFactoryTest.php @@ -94,7 +94,7 @@ class EntityLinkFormatterFactoryTest extends MediaWikiIntegrationTestCase { [ [ 'asdf' ] ], [ [ 1, 2, 3 ] ], [ [ - 'foo' => function () { + 'foo' => static function () { }, 'bar' => null, ] ], diff --git a/repo/tests/phpunit/includes/Hooks/HtmlPageLinkRendererEndHookHandlerTestBase.php b/repo/tests/phpunit/includes/Hooks/HtmlPageLinkRendererEndHookHandlerTestBase.php index 722b005..c8d851e 100644 --- a/repo/tests/phpunit/includes/Hooks/HtmlPageLinkRendererEndHookHandlerTestBase.php +++ b/repo/tests/phpunit/includes/Hooks/HtmlPageLinkRendererEndHookHandlerTestBase.php @@ -125,10 +125,10 @@ abstract class HtmlPageLinkRendererEndHookHandlerTestBase extends MediaWikiLangT $languageFactory = $this->getServiceContainer()->getLanguageFactory(); return new EntityLinkFormatterFactory( $titleTextLookup, $languageFactory, [ - 'item' => function( $language ) use ( $titleTextLookup, $languageFactory ) { + 'item' => static function( $language ) use ( $titleTextLookup, $languageFactory ) { return new DefaultEntityLinkFormatter( $language, $titleTextLookup, $languageFactory ); }, - 'property' => function( $language ) use ( $titleTextLookup, $languageFactory ) { + 'property' => static function( $language ) use ( $titleTextLookup, $languageFactory ) { return new DefaultEntityLinkFormatter( $language, $titleTextLookup, $languageFactory ); }, ] ); @@ -179,7 +179,7 @@ abstract class HtmlPageLinkRendererEndHookHandlerTestBase extends MediaWikiLangT $termLookup = $this->createMock( TermLookup::class ); $termLookup->method( 'getLabels' ) - ->willReturnCallback( function ( EntityId $id ) { + ->willReturnCallback( static function ( EntityId $id ) { switch ( $id->getSerialization() ) { case self::ITEM_WITH_LABEL: case self::ITEM_LABEL_NO_DESCRIPTION: @@ -198,7 +198,7 @@ abstract class HtmlPageLinkRendererEndHookHandlerTestBase extends MediaWikiLangT } ); $termLookup->method( 'getDescriptions' ) - ->willReturnCallback( function ( EntityId $id ) { + ->willReturnCallback( static function ( EntityId $id ) { switch ( $id->getSerialization() ) { case self::ITEM_WITH_LABEL: return [ 'en' => self::DUMMY_DESCRIPTION ]; @@ -234,7 +234,7 @@ abstract class HtmlPageLinkRendererEndHookHandlerTestBase extends MediaWikiLangT private function getInterwikiLookup() { $lookup = $this->createMock( InterwikiLookup::class ); $lookup->method( 'isValidInterwiki' ) - ->willReturnCallback( function( $interwiki ) { + ->willReturnCallback( static function( $interwiki ) { return $interwiki === self::FOREIGN_REPO_PREFIX; } ); return $lookup; diff --git a/repo/tests/phpunit/includes/Hooks/LabelPrefetchHookHandlerTestBase.php b/repo/tests/phpunit/includes/Hooks/LabelPrefetchHookHandlerTestBase.php index d951c27..ab0c748 100644 --- a/repo/tests/phpunit/includes/Hooks/LabelPrefetchHookHandlerTestBase.php +++ b/repo/tests/phpunit/includes/Hooks/LabelPrefetchHookHandlerTestBase.php @@ -105,10 +105,10 @@ abstract class LabelPrefetchHookHandlerTestBase extends TestCase { $expectedTermTypes, $expectedLanguageCodes ) { - $expectedIdStrings = array_map( function( EntityId $id ) { + $expectedIdStrings = array_map( static function( EntityId $id ) { return $id->getSerialization(); }, $expectedIds ); - $entityIdStrings = array_map( function( EntityId $id ) { + $entityIdStrings = array_map( static function( EntityId $id ) { return $id->getSerialization(); }, $entityIds ); diff --git a/repo/tests/phpunit/includes/Hooks/PageHistoryPagerHookHandlerTest.php b/repo/tests/phpunit/includes/Hooks/PageHistoryPagerHookHandlerTest.php index e195dc0..45ee902 100644 --- a/repo/tests/phpunit/includes/Hooks/PageHistoryPagerHookHandlerTest.php +++ b/repo/tests/phpunit/includes/Hooks/PageHistoryPagerHookHandlerTest.php @@ -105,12 +105,12 @@ class PageHistoryPagerHookHandlerTest extends TestCase { } private function setupResultWithSummaries( StatementList $statementList ) { - $availableProperties = array_map( function( $snak ) { + $availableProperties = array_map( static function( $snak ) { return $snak->getPropertyId(); }, $statementList->getAllSnaks() ); $i = 0; - $summaries = array_map( function ( $prop ) use ( &$i ) { + $summaries = array_map( static function ( $prop ) use ( &$i ) { $i++; $object = (object)[ 'rev_comment_text' => "/* wbsetclaim-update:1||1 */ [[Property:{$prop->getSerialization()}]]: foo [[Q$i]] bar.", diff --git a/repo/tests/phpunit/includes/Hooks/RecentChangeSaveHookHandlerTest.php b/repo/tests/phpunit/includes/Hooks/RecentChangeSaveHookHandlerTest.php index d906598..69eeac9 100644 --- a/repo/tests/phpunit/includes/Hooks/RecentChangeSaveHookHandlerTest.php +++ b/repo/tests/phpunit/includes/Hooks/RecentChangeSaveHookHandlerTest.php @@ -52,7 +52,7 @@ class RecentChangeSaveHookHandlerTest extends MediaWikiIntegrationTestCase { $this->changeHolder = new ChangeHolder(); $this->changeStore = $this->createStub( ChangeStore::class ); - $this->changeStore->method( 'saveChange' )->willReturnCallback( function ( $change ) { + $this->changeStore->method( 'saveChange' )->willReturnCallback( static function ( $change ) { $change->setField( 'id', 123 ); } ); $this->centralIdLookup = null; // CentralIdLookupFactory::getNonLocalLookup() may return null in the hook's factory function @@ -308,7 +308,7 @@ class RecentChangeSaveHookHandlerTest extends MediaWikiIntegrationTestCase { private function newStubRecentChangeWithAttributes( array $attributes ): RecentChange { $rc = $this->createStub( RecentChange::class ); $rc->method( 'getAttribute' ) - ->willReturnCallback( function ( $key ) use ( $attributes ) { + ->willReturnCallback( static function ( $key ) use ( $attributes ) { return $attributes[$key] ?? null; } ); diff --git a/repo/tests/phpunit/includes/Hooks/ShowSearchHitHandlerTest.php b/repo/tests/phpunit/includes/Hooks/ShowSearchHitHandlerTest.php index a1a6650..ee7ed83 100644 --- a/repo/tests/phpunit/includes/Hooks/ShowSearchHitHandlerTest.php +++ b/repo/tests/phpunit/includes/Hooks/ShowSearchHitHandlerTest.php @@ -51,7 +51,7 @@ class ShowSearchHitHandlerTest extends MediaWikiIntegrationTestCase { $searchPage = $this->createMock( SpecialSearch::class ); $searchPage->method( 'msg' ) ->willReturnCallback( - function ( ...$args ) { + static function ( ...$args ) { return new RawMessage( implode( ",", $args ) ); } ); @@ -123,7 +123,7 @@ class ShowSearchHitHandlerTest extends MediaWikiIntegrationTestCase { $entityIdLookup = $this->createMock( EntityIdLookup::class ); $entityIdLookup->method( 'getEntityIdForTitle' ) - ->willReturnCallback( function( Title $title ) { + ->willReturnCallback( static function( Title $title ) { if ( preg_match( '/^Q(\d+)$/', $title->getText(), $m ) ) { return new ItemId( $m[0] ); } @@ -171,7 +171,7 @@ class ShowSearchHitHandlerTest extends MediaWikiIntegrationTestCase { $mock->method( 'getFetchLanguageCodes' ) ->willReturn( $languages ); $mock->method( 'extractPreferredValue' ) - ->willReturnCallback( function ( $sourceData ) use ( $languages ) { + ->willReturnCallback( static function ( $sourceData ) use ( $languages ) { foreach ( $languages as $language ) { if ( isset( $sourceData[$language] ) ) { return [ 'language' => $language, 'value' => $sourceData[$language] ]; @@ -190,7 +190,7 @@ class ShowSearchHitHandlerTest extends MediaWikiIntegrationTestCase { $entityLookup = $this->createMock( EntityLookup::class ); if ( isset( $entities ) ) { $entityLookup->method( 'getEntity' ) - ->willReturnCallback( function ( ItemId $id ) use ( $entities ) { + ->willReturnCallback( static function ( ItemId $id ) use ( $entities ) { $key = $id->getSerialization(); return $entities[$key]; } ); diff --git a/repo/tests/phpunit/includes/Hooks/SummaryParsingPrefetchHelperTest.php b/repo/tests/phpunit/includes/Hooks/SummaryParsingPrefetchHelperTest.php index 4ff1ea2..40dc9a1 100644 --- a/repo/tests/phpunit/includes/Hooks/SummaryParsingPrefetchHelperTest.php +++ b/repo/tests/phpunit/includes/Hooks/SummaryParsingPrefetchHelperTest.php @@ -61,7 +61,7 @@ class SummaryParsingPrefetchHelperTest extends TestCase { $this->assertSameSize( $expected, $actualOutput ); - $stringOutput = array_map( function ( $propId ) { + $stringOutput = array_map( static function ( $propId ) { return $propId->getSerialization(); }, $actualOutput ); diff --git a/repo/tests/phpunit/includes/IO/EntityIdReaderTest.php b/repo/tests/phpunit/includes/IO/EntityIdReaderTest.php index d473910..a210907 100644 --- a/repo/tests/phpunit/includes/IO/EntityIdReaderTest.php +++ b/repo/tests/phpunit/includes/IO/EntityIdReaderTest.php @@ -33,7 +33,7 @@ class EntityIdReaderTest extends \PHPUnit\Framework\TestCase { } protected function getIdStrings( array $entityIds ) { - return array_map( function( EntityId $id ) { + return array_map( static function( EntityId $id ) { return $id->getSerialization(); }, $entityIds ); } diff --git a/repo/tests/phpunit/includes/Interactors/ItemMergeInteractorTest.php b/repo/tests/phpunit/includes/Interactors/ItemMergeInteractorTest.php index 4a0b30a..715889b 100644 --- a/repo/tests/phpunit/includes/Interactors/ItemMergeInteractorTest.php +++ b/repo/tests/phpunit/includes/Interactors/ItemMergeInteractorTest.php @@ -100,7 +100,7 @@ class ItemMergeInteractorTest extends MediaWikiIntegrationTestCase { private function getPermissionChecker(): EntityPermissionChecker { $permissionChecker = $this->createMock( EntityPermissionChecker::class ); - $callback = function ( User $user ) { + $callback = static function ( User $user ) { if ( $user->getName() === self::USER_NAME_WITHOUT_PERMISSION ) { return Status::newFatal( 'permissiondenied' ); } else { diff --git a/repo/tests/phpunit/includes/Interactors/RedirectCreationInteractorTest.php b/repo/tests/phpunit/includes/Interactors/RedirectCreationInteractorTest.php index f101d02..a5f711f 100644 --- a/repo/tests/phpunit/includes/Interactors/RedirectCreationInteractorTest.php +++ b/repo/tests/phpunit/includes/Interactors/RedirectCreationInteractorTest.php @@ -72,7 +72,7 @@ class RedirectCreationInteractorTest extends \PHPUnit\Framework\TestCase { $permissionChecker = $this->createMock( EntityPermissionChecker::class ); $permissionChecker->method( 'getPermissionStatusForEntityId' ) - ->willReturnCallback( function( User $user ) { + ->willReturnCallback( static function( User $user ) { $userWithoutPermissionName = 'UserWithoutPermission'; if ( $user->getName() === $userWithoutPermissionName ) { diff --git a/repo/tests/phpunit/includes/Interactors/TokenCheckInteractorTest.php b/repo/tests/phpunit/includes/Interactors/TokenCheckInteractorTest.php index b9a0218..9e27294 100644 --- a/repo/tests/phpunit/includes/Interactors/TokenCheckInteractorTest.php +++ b/repo/tests/phpunit/includes/Interactors/TokenCheckInteractorTest.php @@ -27,7 +27,7 @@ class TokenCheckInteractorTest extends \PHPUnit\Framework\TestCase { $user = $this->createMock( User::class ); $user->method( 'matchEditToken' ) ->willReturnCallback( - function ( $token ) { + static function ( $token ) { return $token === 'VALID'; } ); diff --git a/repo/tests/phpunit/includes/LinkedData/EntityDataRequestHandlerTest.php b/repo/tests/phpunit/includes/LinkedData/EntityDataRequestHandlerTest.php index 9ebef21..f741a96 100644 --- a/repo/tests/phpunit/includes/LinkedData/EntityDataRequestHandlerTest.php +++ b/repo/tests/phpunit/includes/LinkedData/EntityDataRequestHandlerTest.php @@ -111,7 +111,7 @@ class EntityDataRequestHandlerTest extends MediaWikiIntegrationTestCase { $entityTitleStoreLookup = $this->createMock( EntityTitleStoreLookup::class ); $entityTitleStoreLookup->method( 'getTitleForId' ) - ->willReturnCallback( function( EntityId $id ) { + ->willReturnCallback( static function( EntityId $id ) { return Title::newFromTextThrow( $id->getEntityType() . ':' . $id->getSerialization() ); } ); diff --git a/repo/tests/phpunit/includes/LinkedData/EntityDataSerializationServiceTest.php b/repo/tests/phpunit/includes/LinkedData/EntityDataSerializationServiceTest.php index d47d1b8..d5ea0cc 100644 --- a/repo/tests/phpunit/includes/LinkedData/EntityDataSerializationServiceTest.php +++ b/repo/tests/phpunit/includes/LinkedData/EntityDataSerializationServiceTest.php @@ -96,7 +96,7 @@ class EntityDataSerializationServiceTest extends MediaWikiIntegrationTestCase { $entityTitleStoreLookup = $this->createMock( EntityTitleStoreLookup::class ); $entityTitleStoreLookup->method( 'getTitleForId' ) - ->willReturnCallback( function( EntityId $id ) { + ->willReturnCallback( static function( EntityId $id ) { return Title::newFromTextThrow( $id->getEntityType() . ':' . $id->getSerialization() ); } ); @@ -453,7 +453,7 @@ class EntityDataSerializationServiceTest extends MediaWikiIntegrationTestCase { private function getMockPropertyDataTypeLookup(): PropertyDataTypeLookup { $mockDataTypeLookup = $this->createMock( PropertyDataTypeLookup::class ); $mockDataTypeLookup->method( 'getDataTypeIdForProperty' ) - ->willReturnCallback( function( NumericPropertyId $id ) { + ->willReturnCallback( static function( NumericPropertyId $id ) { if ( $id->getSerialization() === 'P999' ) { throw new PropertyDataTypeLookupException( $id ); } diff --git a/repo/tests/phpunit/includes/LinkedData/EntityDataUriManagerTest.php b/repo/tests/phpunit/includes/LinkedData/EntityDataUriManagerTest.php index 71d54fb..db4e4f3 100644 --- a/repo/tests/phpunit/includes/LinkedData/EntityDataUriManagerTest.php +++ b/repo/tests/phpunit/includes/LinkedData/EntityDataUriManagerTest.php @@ -26,7 +26,7 @@ class EntityDataUriManagerTest extends MediaWikiIntegrationTestCase { protected function makeUriManager() { $titleLookup = $this->createMock( EntityTitleLookup::class ); $titleLookup->method( 'getTitleForId' ) - ->willReturnCallback( function( EntityId $id ) { + ->willReturnCallback( static function( EntityId $id ) { return Title::newFromTextThrow( $id->getEntityType() . ':' . $id->getSerialization() ); } ); diff --git a/repo/tests/phpunit/includes/Localizer/ChangeOpValidationExceptionLocalizerTest.php b/repo/tests/phpunit/includes/Localizer/ChangeOpValidationExceptionLocalizerTest.php index fbca0a4..a393a5c 100644 --- a/repo/tests/phpunit/includes/Localizer/ChangeOpValidationExceptionLocalizerTest.php +++ b/repo/tests/phpunit/includes/Localizer/ChangeOpValidationExceptionLocalizerTest.php @@ -72,7 +72,7 @@ class ChangeOpValidationExceptionLocalizerTest extends \PHPUnit\Framework\TestCa $mock = $this->createMock( ValueFormatter::class ); $mock->method( 'format' ) ->willReturnCallback( - function ( $param ) { + static function ( $param ) { if ( is_array( $param ) ) { $param = implode( '|', $param ); } diff --git a/repo/tests/phpunit/includes/Localizer/MessageParameterFormatterTest.php b/repo/tests/phpunit/includes/Localizer/MessageParameterFormatterTest.php index 96e1d33..2bd9a85 100644 --- a/repo/tests/phpunit/includes/Localizer/MessageParameterFormatterTest.php +++ b/repo/tests/phpunit/includes/Localizer/MessageParameterFormatterTest.php @@ -66,7 +66,7 @@ class MessageParameterFormatterTest extends \PHPUnit\Framework\TestCase { $mock = $this->createMock( ValueFormatter::class ); $mock->method( 'format' ) ->willReturnCallback( - function ( DataValue $param ) { + static function ( DataValue $param ) { $class = get_class( $param ); $value = $param->getArrayValue(); @@ -84,7 +84,7 @@ class MessageParameterFormatterTest extends \PHPUnit\Framework\TestCase { $mock = $this->createMock( EntityIdFormatter::class ); $mock->method( 'formatEntityId' ) ->willReturnCallback( - function ( EntityId $id ) { + static function ( EntityId $id ) { return '[[ENTITYID]]'; } ); diff --git a/repo/tests/phpunit/includes/Merge/StatementsMergerTest.php b/repo/tests/phpunit/includes/Merge/StatementsMergerTest.php index d5b8cc0..c84390b 100644 --- a/repo/tests/phpunit/includes/Merge/StatementsMergerTest.php +++ b/repo/tests/phpunit/includes/Merge/StatementsMergerTest.php @@ -151,7 +151,7 @@ class StatementsMergerTest extends TestCase { ]; yield 'source and target both not entities' => [ - function ( self $self ) { + static function ( self $self ) { $nonEntity = $self->createMock( StatementListProvider::class ); return [ $nonEntity, clone $nonEntity ]; }, diff --git a/repo/tests/phpunit/includes/ParserOutput/DispatchingEntityMetaTagsCreatorFactoryTest.php b/repo/tests/phpunit/includes/ParserOutput/DispatchingEntityMetaTagsCreatorFactoryTest.php index 63ec0c6..075b5eb 100644 --- a/repo/tests/phpunit/includes/ParserOutput/DispatchingEntityMetaTagsCreatorFactoryTest.php +++ b/repo/tests/phpunit/includes/ParserOutput/DispatchingEntityMetaTagsCreatorFactoryTest.php @@ -42,7 +42,7 @@ class DispatchingEntityMetaTagsCreatorFactoryTest extends TestCase { public function testNoEntityMetaTagsReturned() { $factory = new DispatchingEntityMetaTagsCreatorFactory( [ - 'dummy-entity-type' => function() { + 'dummy-entity-type' => static function() { return null; }, ] diff --git a/repo/tests/phpunit/includes/ParserOutput/DispatchingEntityViewFactoryTest.php b/repo/tests/phpunit/includes/ParserOutput/DispatchingEntityViewFactoryTest.php index d00298c..15747e3 100644 --- a/repo/tests/phpunit/includes/ParserOutput/DispatchingEntityViewFactoryTest.php +++ b/repo/tests/phpunit/includes/ParserOutput/DispatchingEntityViewFactoryTest.php @@ -46,7 +46,7 @@ class DispatchingEntityViewFactoryTest extends \PHPUnit\Framework\TestCase { public function testNoEntityViewReturned() { $factory = new DispatchingEntityViewFactory( [ - 'foo' => function() { + 'foo' => static function() { return null; }, ] diff --git a/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTestBase.php b/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTestBase.php index e22c6b7..8937716 100644 --- a/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTestBase.php +++ b/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTestBase.php @@ -49,7 +49,7 @@ class EntityParserOutputGeneratorTestBase extends MediaWikiIntegrationTestCase { $fallbackChain = $this->createMock( TermLanguageFallbackChain::class ); $fallbackChain->method( 'extractPreferredValue' ) - ->willReturnCallback( function( $labels ) { + ->willReturnCallback( static function( $labels ) { if ( array_key_exists( 'en', $labels ) ) { return [ 'value' => $labels['en'], @@ -172,7 +172,7 @@ class EntityParserOutputGeneratorTestBase extends MediaWikiIntegrationTestCase { $configBuilder = $this->createMock( ParserOutputJsConfigBuilder::class ); $configBuilder->method( 'build' ) - ->willReturnCallback( function( $ignore, $parserOutput ) { + ->willReturnCallback( static function( $ignore, $parserOutput ) { $parserOutput->setJsConfigVar( '<JS>', '<JS>' ); } ); @@ -186,7 +186,7 @@ class EntityParserOutputGeneratorTestBase extends MediaWikiIntegrationTestCase { $entityTitleLookup = $this->createMock( EntityTitleLookup::class ); $entityTitleLookup->method( 'getTitleForId' ) - ->willReturnCallback( function( EntityId $id ) { + ->willReturnCallback( static function( EntityId $id ) { return Title::makeTitle( NS_MAIN, $id->getEntityType() . ':' . $id->getSerialization() diff --git a/repo/tests/phpunit/includes/ParserOutput/ExternalLinksDataUpdaterTest.php b/repo/tests/phpunit/includes/ParserOutput/ExternalLinksDataUpdaterTest.php index dd75c7e..2f55cb1 100644 --- a/repo/tests/phpunit/includes/ParserOutput/ExternalLinksDataUpdaterTest.php +++ b/repo/tests/phpunit/includes/ParserOutput/ExternalLinksDataUpdaterTest.php @@ -26,7 +26,7 @@ class ExternalLinksDataUpdaterTest extends \PHPUnit\Framework\TestCase { private function newInstance() { $matcher = $this->createMock( PropertyDataTypeMatcher::class ); $matcher->method( 'isMatchingDataType' ) - ->willReturnCallback( function( PropertyId $id, $type ) { + ->willReturnCallback( static function( PropertyId $id, $type ) { return $id->getSerialization() === 'P1'; } ); @@ -53,7 +53,7 @@ class ExternalLinksDataUpdaterTest extends \PHPUnit\Framework\TestCase { $parserOutput = $this->createMock( ParserOutput::class ); $parserOutput->expects( $this->exactly( count( $expected ) ) ) ->method( 'addExternalLink' ) - ->willReturnCallback( function( $url ) use ( &$actual ) { + ->willReturnCallback( static function( $url ) use ( &$actual ) { $actual[] = $url; } ); diff --git a/repo/tests/phpunit/includes/ParserOutput/ImageLinksDataUpdaterTest.php b/repo/tests/phpunit/includes/ParserOutput/ImageLinksDataUpdaterTest.php index 8c4cff1..4dca313 100644 --- a/repo/tests/phpunit/includes/ParserOutput/ImageLinksDataUpdaterTest.php +++ b/repo/tests/phpunit/includes/ParserOutput/ImageLinksDataUpdaterTest.php @@ -28,7 +28,7 @@ class ImageLinksDataUpdaterTest extends \PHPUnit\Framework\TestCase { private function newInstance() { $matcher = $this->createMock( PropertyDataTypeMatcher::class ); $matcher->method( 'isMatchingDataType' ) - ->willReturnCallback( function( PropertyId $id, $type ) { + ->willReturnCallback( static function( PropertyId $id, $type ) { return $id->getSerialization() === 'P1'; } ); $repoGroup = $this->createMock( RepoGroup::class ); diff --git a/repo/tests/phpunit/includes/ParserOutput/ParserOutputJsConfigBuilderTest.php b/repo/tests/phpunit/includes/ParserOutput/ParserOutputJsConfigBuilderTest.php index 9abc0ac..f4f3b5d 100644 --- a/repo/tests/phpunit/includes/ParserOutput/ParserOutputJsConfigBuilderTest.php +++ b/repo/tests/phpunit/includes/ParserOutput/ParserOutputJsConfigBuilderTest.php @@ -51,7 +51,7 @@ class ParserOutputJsConfigBuilderTest extends MediaWikiIntegrationTestCase { ->expects( $this->atLeastOnce() ) ->method( 'setJsConfigVar' ) ->with( $this->anything(), $this->anything() ) - ->willReturnCallback( function( $name, $value ) use ( &$sawOnce, $expectedId ) { + ->willReturnCallback( static function( $name, $value ) use ( &$sawOnce, $expectedId ) { if ( $name === 'wbEntityId' && $value === $expectedId ) { $sawOnce = true; } diff --git a/repo/tests/phpunit/includes/ParserOutput/ReferencedEntitiesDataUpdaterTest.php b/repo/tests/phpunit/includes/ParserOutput/ReferencedEntitiesDataUpdaterTest.php index fec8644..bb4f42c 100644 --- a/repo/tests/phpunit/includes/ParserOutput/ReferencedEntitiesDataUpdaterTest.php +++ b/repo/tests/phpunit/includes/ParserOutput/ReferencedEntitiesDataUpdaterTest.php @@ -80,14 +80,14 @@ class ReferencedEntitiesDataUpdaterTest extends MediaWikiIntegrationTestCase { $parserOutput = $this->createMock( ParserOutput::class ); $parserOutput->expects( $this->exactly( count( $expectedEntityIds ) ) ) ->method( 'addLink' ) - ->willReturnCallback( function( Title $title ) use ( &$actual ) { + ->willReturnCallback( static function( Title $title ) use ( &$actual ) { $actual[] = $title->getText(); } ); $instance = $this->newInstance( $item, $expectedEntityIds ); $instance->updateParserOutput( $parserOutput, $item ); - $expectedEntityIdStrings = array_map( function ( EntityId $id ) { + $expectedEntityIdStrings = array_map( static function ( EntityId $id ) { return $id->getSerialization(); }, $expectedEntityIds ); $this->assertArrayEquals( $expectedEntityIdStrings, $actual ); diff --git a/repo/tests/phpunit/includes/ParserOutput/TextInjectorTest.php b/repo/tests/phpunit/includes/ParserOutput/TextInjectorTest.php index 65c0570..4d9ccf4 100644 --- a/repo/tests/phpunit/includes/ParserOutput/TextInjectorTest.php +++ b/repo/tests/phpunit/includes/ParserOutput/TextInjectorTest.php @@ -45,7 +45,7 @@ class TextInjectorTest extends \PHPUnit\Framework\TestCase { $expected = 'Good morning to you!'; - $actual = $injector->inject( $text, function ( ...$args ) { + $actual = $injector->inject( $text, static function ( ...$args ) { return implode( ' ', $args ); } ); diff --git a/repo/tests/phpunit/includes/Parsers/TimeParserFactoryTest.php b/repo/tests/phpunit/includes/Parsers/TimeParserFactoryTest.php index db9e581..b71a3a0 100644 --- a/repo/tests/phpunit/includes/Parsers/TimeParserFactoryTest.php +++ b/repo/tests/phpunit/includes/Parsers/TimeParserFactoryTest.php @@ -30,7 +30,7 @@ class TimeParserFactoryTest extends \PHPUnit\Framework\TestCase { $monthNameProvider = $this->createMock( MonthNameProvider::class ); $monthNameProvider->method( 'getLocalizedMonthNames' ) - ->willReturnCallback( function( $languageCode ) { + ->willReturnCallback( static function( $languageCode ) { $monthNames = []; for ( $i = 1; $i <= 12; $i++ ) { $monthNames[$i] = $languageCode . 'Month' . $i; @@ -39,7 +39,7 @@ class TimeParserFactoryTest extends \PHPUnit\Framework\TestCase { } ); $monthNameProvider->method( 'getMonthNumbers' ) - ->willReturnCallback( function( $languageCode ) { + ->willReturnCallback( static function( $languageCode ) { $numbers = []; for ( $i = 1; $i <= 12; $i++ ) { $numbers[$languageCode . 'Month' . $i] = $i; diff --git a/repo/tests/phpunit/includes/PropertyDataTypeChangerTest.php b/repo/tests/phpunit/includes/PropertyDataTypeChangerTest.php index 71cf525..9a28212 100644 --- a/repo/tests/phpunit/includes/PropertyDataTypeChangerTest.php +++ b/repo/tests/phpunit/includes/PropertyDataTypeChangerTest.php @@ -127,7 +127,7 @@ class PropertyDataTypeChangerTest extends \PHPUnit\Framework\TestCase { 0, LookupConstants::LATEST_FROM_MASTER ) - ->willReturnCallback( function( NumericPropertyId $propertyId ) { + ->willReturnCallback( static function( NumericPropertyId $propertyId ) { if ( $propertyId->getSerialization() === 'P42' ) { $property = new Property( new NumericPropertyId( 'P42' ), diff --git a/repo/tests/phpunit/includes/PropertyServicesTest.php b/repo/tests/phpunit/includes/PropertyServicesTest.php index 07d44af..7f3fe1b 100644 --- a/repo/tests/phpunit/includes/PropertyServicesTest.php +++ b/repo/tests/phpunit/includes/PropertyServicesTest.php @@ -25,10 +25,10 @@ class PropertyServicesTest extends TestCase { $serviceName = 'some-service'; $definitions = [ $serviceName => [ - ApiEntitySource::TYPE => function () { + ApiEntitySource::TYPE => static function () { return 'api service'; }, - DatabaseEntitySource::TYPE => function () { + DatabaseEntitySource::TYPE => static function () { return 'db service'; }, ], diff --git a/repo/tests/phpunit/includes/Rdf/FullStatementRdfBuilderTest.php b/repo/tests/phpunit/includes/Rdf/FullStatementRdfBuilderTest.php index d72c630..3e6b212 100644 --- a/repo/tests/phpunit/includes/Rdf/FullStatementRdfBuilderTest.php +++ b/repo/tests/phpunit/includes/Rdf/FullStatementRdfBuilderTest.php @@ -75,7 +75,7 @@ class FullStatementRdfBuilderTest extends \MediaWikiIntegrationTestCase { $mentionTracker = $this->createMock( EntityMentionListener::class ); $mentionTracker->method( 'propertyMentioned' ) - ->willReturnCallback( function( EntityId $id ) use ( &$mentioned ) { + ->willReturnCallback( static function( EntityId $id ) use ( &$mentioned ) { $key = $id->getSerialization(); $mentioned[$key] = $id; } ); @@ -122,7 +122,7 @@ class FullStatementRdfBuilderTest extends \MediaWikiIntegrationTestCase { public static function provideAddEntity() { $props = array_map( - function ( $data ) { + static function ( $data ) { /** @var PropertyId $propertyId */ $propertyId = $data[0]; return $propertyId->getSerialization(); @@ -172,7 +172,7 @@ class FullStatementRdfBuilderTest extends \MediaWikiIntegrationTestCase { public static function provideAddEntityTestCasesWhenPropertiesFromOtherWikibase() { $props = array_map( - function ( $data ) { + static function ( $data ) { /** @var PropertyId $propertyId */ $propertyId = $data[0]; return $propertyId->getSerialization(); diff --git a/repo/tests/phpunit/includes/Rdf/NTriplesRdfTestHelper.php b/repo/tests/phpunit/includes/Rdf/NTriplesRdfTestHelper.php index ddc1801..0b32e86 100644 --- a/repo/tests/phpunit/includes/Rdf/NTriplesRdfTestHelper.php +++ b/repo/tests/phpunit/includes/Rdf/NTriplesRdfTestHelper.php @@ -72,7 +72,7 @@ class NTriplesRdfTestHelper { if ( $this->allBlanksEqual ) { $nTriples = array_map( - function ( $line ) { + static function ( $line ) { return preg_replace( '/_:\w+/', '_:#####', $line ); }, $nTriples diff --git a/repo/tests/phpunit/includes/Rdf/PropertyStubRdfBuilderTest.php b/repo/tests/phpunit/includes/Rdf/PropertyStubRdfBuilderTest.php index c9016b2..1f185ce 100644 --- a/repo/tests/phpunit/includes/Rdf/PropertyStubRdfBuilderTest.php +++ b/repo/tests/phpunit/includes/Rdf/PropertyStubRdfBuilderTest.php @@ -85,7 +85,7 @@ class PropertyStubRdfBuilderTest extends MediaWikiIntegrationTestCase { private function getPropertyDataTypeLookup(): PropertyDataTypeLookup { $mockDataTypeLookup = $this->createMock( PropertyDataTypeLookup::class ); $mockDataTypeLookup->method( 'getDataTypeIdForProperty' ) - ->willReturnCallback( function( NumericPropertyId $id ) { + ->willReturnCallback( static function( NumericPropertyId $id ) { return 'string'; } ); return $mockDataTypeLookup; diff --git a/repo/tests/phpunit/includes/Rdf/RdfBuilderTest.php b/repo/tests/phpunit/includes/Rdf/RdfBuilderTest.php index 521e642..07cf62f 100644 --- a/repo/tests/phpunit/includes/Rdf/RdfBuilderTest.php +++ b/repo/tests/phpunit/includes/Rdf/RdfBuilderTest.php @@ -153,7 +153,7 @@ class RdfBuilderTest extends MediaWikiIntegrationTestCase { $fullStatementRdfBuilderFactory ); }, - 'property' => function( + 'property' => static function( $flavorFlags, RdfVocabulary $vocabulary, RdfWriter $writer, diff --git a/repo/tests/phpunit/includes/Rdf/SnakRdfBuilderTest.php b/repo/tests/phpunit/includes/Rdf/SnakRdfBuilderTest.php index 4e8d383..e3a1880 100644 --- a/repo/tests/phpunit/includes/Rdf/SnakRdfBuilderTest.php +++ b/repo/tests/phpunit/includes/Rdf/SnakRdfBuilderTest.php @@ -62,7 +62,7 @@ class SnakRdfBuilderTest extends \PHPUnit\Framework\TestCase { ): SnakRdfBuilder { $mentionTracker = $this->createMock( EntityMentionListener::class ); $mentionTracker->method( 'propertyMentioned' ) - ->willReturnCallback( function( EntityId $id ) use ( &$mentioned ) { + ->willReturnCallback( static function( EntityId $id ) use ( &$mentioned ) { $key = $id->getSerialization(); $mentioned[$key] = $id; } ); diff --git a/repo/tests/phpunit/includes/Rdf/Values/ExternalIdentifierRdfBuilderTest.php b/repo/tests/phpunit/includes/Rdf/Values/ExternalIdentifierRdfBuilderTest.php index d9eb413..1ac30cb 100644 --- a/repo/tests/phpunit/includes/Rdf/Values/ExternalIdentifierRdfBuilderTest.php +++ b/repo/tests/phpunit/includes/Rdf/Values/ExternalIdentifierRdfBuilderTest.php @@ -39,7 +39,7 @@ class ExternalIdentifierRdfBuilderTest extends \PHPUnit\Framework\TestCase { public function testAddValue() { $uriPatternProvider = $this->createMock( PropertyInfoProvider::class ); $uriPatternProvider->method( 'getPropertyInfo' ) - ->willReturnCallback( function( NumericPropertyId $id ) { + ->willReturnCallback( static function( NumericPropertyId $id ) { return $id->getSerialization() === 'P1' ? 'http://xyzzy.test/vocab/$1' : null; } ); diff --git a/repo/tests/phpunit/includes/RepoHooksTest.php b/repo/tests/phpunit/includes/RepoHooksTest.php index e750fab..e8e3867 100644 --- a/repo/tests/phpunit/includes/RepoHooksTest.php +++ b/repo/tests/phpunit/includes/RepoHooksTest.php @@ -137,7 +137,7 @@ class RepoHooksTest extends MediaWikiIntegrationTestCase { $this->overrideMwServices( null, - [ 'WikibaseRepo.MobileSite' => function () { + [ 'WikibaseRepo.MobileSite' => static function () { return true; } ] ); @@ -319,10 +319,10 @@ XML $importer = $this->getServiceContainer()->getWikiImporterFactory() ->getWikiImporter( $source, $this->getTestSysop()->getAuthority() ); - $importer->setNoticeCallback( function() { + $importer->setNoticeCallback( static function() { // Do nothing for now. Could collect and compare notices. } ); - $importer->setPageOutCallback( function() { + $importer->setPageOutCallback( static function() { } ); if ( $expectedException !== null ) { @@ -342,7 +342,7 @@ XML $parserOutput = $this->createMock( ParserOutput::class ); $parserOutput->expects( $this->exactly( 6 ) ) ->method( 'getExtensionData' ) - ->willReturnCallback( function ( $key ) use ( $altLinks ) { + ->willReturnCallback( static function ( $key ) use ( $altLinks ) { if ( $key === 'wikibase-alternate-links' ) { return $altLinks; } else { @@ -392,7 +392,7 @@ XML $pOpts = ParserOptions::newFromAnon(); $used = []; - $pOpts->registerWatcher( function ( $opt ) use ( &$used ) { + $pOpts->registerWatcher( static function ( $opt ) use ( &$used ) { $used[$opt] = true; } ); diff --git a/repo/tests/phpunit/includes/Specials/HTMLForm/HTMLAliasesFieldTest.php b/repo/tests/phpunit/includes/Specials/HTMLForm/HTMLAliasesFieldTest.php index ea47953..d95ab5a 100644 --- a/repo/tests/phpunit/includes/Specials/HTMLForm/HTMLAliasesFieldTest.php +++ b/repo/tests/phpunit/includes/Specials/HTMLForm/HTMLAliasesFieldTest.php @@ -21,7 +21,7 @@ class HTMLAliasesFieldTest extends MediaWikiIntegrationTestCase { $this->createField( [ 'fieldname' => 'some-name', - 'filter-callback' => function () { + 'filter-callback' => static function () { }, ] ); diff --git a/repo/tests/phpunit/includes/Specials/HTMLForm/HTMLItemReferenceFieldTest.php b/repo/tests/phpunit/includes/Specials/HTMLForm/HTMLItemReferenceFieldTest.php index 086151f..0fb5d9a 100644 --- a/repo/tests/phpunit/includes/Specials/HTMLForm/HTMLItemReferenceFieldTest.php +++ b/repo/tests/phpunit/includes/Specials/HTMLForm/HTMLItemReferenceFieldTest.php @@ -73,7 +73,7 @@ class HTMLItemReferenceFieldTest extends MediaWikiIntegrationTestCase { $this->givenItemExists( $existingItemId = 'Q1' ); $field = $this->createField( [ - 'validation-callback' => function () { + 'validation-callback' => static function () { return wfMessage( 'some-message' ); }, ] diff --git a/repo/tests/phpunit/includes/Specials/SpecialAvailableBadgesTest.php b/repo/tests/phpunit/includes/Specials/SpecialAvailableBadgesTest.php index c8761d0..8947510 100644 --- a/repo/tests/phpunit/includes/Specials/SpecialAvailableBadgesTest.php +++ b/repo/tests/phpunit/includes/Specials/SpecialAvailableBadgesTest.php @@ -33,7 +33,7 @@ class SpecialAvailableBadgesTest extends SpecialPageTestBase { $entityTitleLookup = $this->createMock( EntityTitleLookup::class ); $entityTitleLookup->method( 'getTitleForId' ) - ->willReturnCallback( function ( ItemId $itemId ) { + ->willReturnCallback( static function ( ItemId $itemId ) { return Title::makeTitle( 0, $itemId->getSerialization() ); } ); diff --git a/repo/tests/phpunit/includes/Specials/SpecialEntityDataTest.php b/repo/tests/phpunit/includes/Specials/SpecialEntityDataTest.php index 807f310..f058b03 100644 --- a/repo/tests/phpunit/includes/Specials/SpecialEntityDataTest.php +++ b/repo/tests/phpunit/includes/Specials/SpecialEntityDataTest.php @@ -71,7 +71,7 @@ class SpecialEntityDataTest extends SpecialPageTestBase { $entityTitleStoreLookup = $this->createMock( EntityTitleStoreLookup::class ); $entityTitleStoreLookup->method( 'getTitleForId' ) - ->willReturnCallback( function( EntityId $id ) { + ->willReturnCallback( static function( EntityId $id ) { return Title::newFromTextThrow( $id->getEntityType() . ':' . $id->getSerialization() ); } ); diff --git a/repo/tests/phpunit/includes/Specials/SpecialGoToLinkedPageTest.php b/repo/tests/phpunit/includes/Specials/SpecialGoToLinkedPageTest.php index f51b32c..525f41f 100644 --- a/repo/tests/phpunit/includes/Specials/SpecialGoToLinkedPageTest.php +++ b/repo/tests/phpunit/includes/Specials/SpecialGoToLinkedPageTest.php @@ -38,7 +38,7 @@ class SpecialGoToLinkedPageTest extends SpecialPageTestBase { $mock = $this->createMock( SiteLinkLookup::class ); $mock->method( 'getLinks' ) - ->willReturnCallback( function( $itemIds, $siteIds ) { + ->willReturnCallback( static function( $itemIds, $siteIds ) { $result = [ [ '', 'TestPageName' ] ]; if ( $siteIds === [ 'dewiki' ] && $itemIds === [ 23 ] ) { return $result; @@ -64,7 +64,7 @@ class SpecialGoToLinkedPageTest extends SpecialPageTestBase { private function getEntityRedirectTargetLookup(): EntityRedirectTargetLookup { $mock = $this->createMock( EntityRedirectTargetLookup::class ); $mock->method( 'getRedirectForEntityId' ) - ->willReturnCallback( function( ItemId $id ) { + ->willReturnCallback( static function( ItemId $id ) { if ( $id->getSerialization() === 'Q24' ) { return new ItemId( 'Q23' ); } else { @@ -81,7 +81,7 @@ class SpecialGoToLinkedPageTest extends SpecialPageTestBase { private function getEntityIdParser() { $mock = $this->createMock( EntityIdParser::class ); $mock->method( 'parse' ) - ->willReturnCallback( function( $itemString ) { + ->willReturnCallback( static function( $itemString ) { try { return new ItemId( $itemString ); } catch ( InvalidArgumentException $ex ) { @@ -98,7 +98,7 @@ class SpecialGoToLinkedPageTest extends SpecialPageTestBase { private function getEntityLookup() { $mock = $this->createMock( EntityLookup::class ); $mock->method( 'hasEntity' ) - ->willReturnCallback( function( ItemId $itemId ) { + ->willReturnCallback( static function( ItemId $itemId ) { $id = $itemId->getSerialization(); return $id === 'Q23' || $id === 'Q24'; } ); diff --git a/repo/tests/phpunit/includes/Specials/SpecialItemByTitleTest.php b/repo/tests/phpunit/includes/Specials/SpecialItemByTitleTest.php index 62fffc0..a2615a8 100644 --- a/repo/tests/phpunit/includes/Specials/SpecialItemByTitleTest.php +++ b/repo/tests/phpunit/includes/Specials/SpecialItemByTitleTest.php @@ -47,7 +47,7 @@ class SpecialItemByTitleTest extends SpecialPageTestBase { $mock = $this->createMock( EntityTitleLookup::class ); $mock->method( 'getTitleForId' ) - ->willReturnCallback( function( EntityId $id ) { + ->willReturnCallback( static function( EntityId $id ) { return Title::makeTitle( NS_MAIN, $id->getSerialization() ); } ); @@ -73,7 +73,7 @@ class SpecialItemByTitleTest extends SpecialPageTestBase { $siteLinkLookup = $this->createMock( SiteLinkLookup::class ); $siteLinkLookup->method( 'getItemIdForLink' ) - ->willReturnCallback( function ( $wiki, $page ) { + ->willReturnCallback( static function ( $wiki, $page ) { if ( $wiki === self::EXISTING_WIKI && $page === self::EXISTING_PAGE ) { return new ItemId( self::EXISTING_ITEM_ID ); } else { diff --git a/repo/tests/phpunit/includes/Specials/SpecialItemDisambiguationTest.php b/repo/tests/phpunit/includes/Specials/SpecialItemDisambiguationTest.php index 4cb2b98..516f710 100644 --- a/repo/tests/phpunit/includes/Specials/SpecialItemDisambiguationTest.php +++ b/repo/tests/phpunit/includes/Specials/SpecialItemDisambiguationTest.php @@ -46,7 +46,7 @@ class SpecialItemDisambiguationTest extends SpecialPageTestBase { private function getMockItemDisambiguationFactory(): ItemDisambiguationFactory { $mock = $this->createMock( ItemDisambiguation::class ); $mock->method( 'getHTML' ) - ->willReturnCallback( function ( $searchResult ) { + ->willReturnCallback( static function ( $searchResult ) { return '<span class="mock-span" >ItemDisambiguationHTML-' . count( $searchResult ) . '</span>'; } ); @@ -81,7 +81,7 @@ class SpecialItemDisambiguationTest extends SpecialPageTestBase { } else { $mock->method( 'getRankedSearchResults' ) ->willReturnCallback( - function( $text, $lang, $entityType ) use ( $searchResults ) { + static function( $text, $lang, $entityType ) use ( $searchResults ) { if ( $lang !== 'fr' ) { throw new InvalidArgumentException( 'Not a valid language code' ); } diff --git a/repo/tests/phpunit/includes/Specials/SpecialListPropertiesTest.php b/repo/tests/phpunit/includes/Specials/SpecialListPropertiesTest.php index 9fb9596..70c4e3d 100644 --- a/repo/tests/phpunit/includes/Specials/SpecialListPropertiesTest.php +++ b/repo/tests/phpunit/includes/Specials/SpecialListPropertiesTest.php @@ -56,7 +56,7 @@ class SpecialListPropertiesTest extends SpecialPageTestBase { private function getFallbackLabelDescriptionLookup(): FallbackLabelDescriptionLookup { $lookup = $this->createMock( FallbackLabelDescriptionLookup::class ); $lookup->method( 'getLabel' ) - ->willReturnCallback( function( PropertyId $id ): TermFallback { + ->willReturnCallback( static function( PropertyId $id ): TermFallback { return new TermFallback( 'en', 'Property with label ' . $id->getSerialization(), diff --git a/repo/tests/phpunit/includes/Specials/SpecialMergeItemsTest.php b/repo/tests/phpunit/includes/Specials/SpecialMergeItemsTest.php index 75ae44c..2f46489 100644 --- a/repo/tests/phpunit/includes/Specials/SpecialMergeItemsTest.php +++ b/repo/tests/phpunit/includes/Specials/SpecialMergeItemsTest.php @@ -94,7 +94,7 @@ class SpecialMergeItemsTest extends SpecialPageTestBase { private function getEntityTitleLookup(): EntityTitleStoreLookup { $entityTitleLookup = $this->createMock( EntityTitleStoreLookup::class ); $entityTitleLookup->method( 'getTitleForId' ) - ->willReturnCallback( function( EntityId $entityId ) { + ->willReturnCallback( static function( EntityId $entityId ) { return Title::newFromTextThrow( $entityId->getSerialization() ); } ); @@ -113,7 +113,7 @@ class SpecialMergeItemsTest extends SpecialPageTestBase { $exceptionLocalizer = $this->createMock( ExceptionLocalizer::class ); $exceptionLocalizer->method( 'getExceptionMessage' ) - ->willReturnCallback( function( Exception $ex ) { + ->willReturnCallback( static function( Exception $ex ) { if ( $ex instanceof Error ) { throw $ex; } @@ -244,7 +244,7 @@ class SpecialMergeItemsTest extends SpecialPageTestBase { private function getPermissionCheckers(): EntityPermissionChecker { $permissionChecker = $this->createMock( EntityPermissionChecker::class ); - $callback = function ( User $user ) { + $callback = static function ( User $user ) { $name = 'UserWithoutPermission'; if ( $user->getName() === $name ) { return Status::newFatal( 'permissiondenied' ); diff --git a/repo/tests/phpunit/includes/Specials/SpecialNewItemTest.php b/repo/tests/phpunit/includes/Specials/SpecialNewItemTest.php index 42f7ef2..d1db78c 100644 --- a/repo/tests/phpunit/includes/Specials/SpecialNewItemTest.php +++ b/repo/tests/phpunit/includes/Specials/SpecialNewItemTest.php @@ -516,7 +516,7 @@ class SpecialNewItemTest extends SpecialNewEntityTestCase { $siteMock->setGlobalId( $existingSiteId ); $siteMock->setGroup( 'wikiblah' ); $siteMock->method( 'normalizePageName' ) - ->willReturnCallback( function ( $pageName, $followRedirect ) { + ->willReturnCallback( static function ( $pageName, $followRedirect ) { if ( $followRedirect === MediaWikiPageNameNormalizer::FOLLOW_REDIRECT ) { return "Redirect target of $pageName"; } else { @@ -551,7 +551,7 @@ class SpecialNewItemTest extends SpecialNewEntityTestCase { /** @var MockObject|ValueValidator $validatorMock */ $validatorMock = $this->createMock( ValueValidator::class ); $validatorMock->method( 'validate' )->willReturnCallback( - function ( $value ) { + static function ( $value ) { if ( $value === 'TOO_LONG_ERROR' ) { return Result::newError( [ Error::newError( 'This is the too long error', null, 'too-long' ) ] ); } diff --git a/repo/tests/phpunit/includes/Specials/SpecialNewPropertyTest.php b/repo/tests/phpunit/includes/Specials/SpecialNewPropertyTest.php index c936c7c..e7339e7 100644 --- a/repo/tests/phpunit/includes/Specials/SpecialNewPropertyTest.php +++ b/repo/tests/phpunit/includes/Specials/SpecialNewPropertyTest.php @@ -370,7 +370,7 @@ class SpecialNewPropertyTest extends SpecialNewEntityTestCase { /** @var MockObject|ValueValidator $validatorMock */ $validatorMock = $this->createMock( ValueValidator::class ); $validatorMock->method( 'validate' )->willReturnCallback( - function ( $value ) { + static function ( $value ) { if ( $value === 'TOO_LONG_ERROR' ) { return Result::newError( [ Error::newError( 'This is the too long error', null, 'too-long' ) ] ); } diff --git a/repo/tests/phpunit/includes/Specials/SpecialRedirectEntityTest.php b/repo/tests/phpunit/includes/Specials/SpecialRedirectEntityTest.php index 579263b..0ecfb79 100644 --- a/repo/tests/phpunit/includes/Specials/SpecialRedirectEntityTest.php +++ b/repo/tests/phpunit/includes/Specials/SpecialRedirectEntityTest.php @@ -92,7 +92,7 @@ class SpecialRedirectEntityTest extends SpecialPageTestBase { protected function newSpecialPage(): SpecialRedirectEntity { $exceptionLocalizer = $this->createMock( ExceptionLocalizer::class ); $exceptionLocalizer->method( 'getExceptionMessage' ) - ->willReturnCallback( function( Exception $ex ) { + ->willReturnCallback( static function( Exception $ex ) { if ( $ex instanceof Error ) { throw $ex; } @@ -174,7 +174,7 @@ class SpecialRedirectEntityTest extends SpecialPageTestBase { $permissionChecker = $this->createMock( EntityPermissionChecker::class ); $permissionChecker->method( 'getPermissionStatusForEntityId' ) - ->willReturnCallback( function( User $user ) { + ->willReturnCallback( static function( User $user ) { $name = 'UserWithoutPermission'; if ( $user->getName() === $name ) { return Status::newFatal( 'permissiondenied' ); diff --git a/repo/tests/phpunit/includes/Specials/SpecialWikibaseRepoPageTestBase.php b/repo/tests/phpunit/includes/Specials/SpecialWikibaseRepoPageTestBase.php index 6ddd0aa..40d84f1 100644 --- a/repo/tests/phpunit/includes/Specials/SpecialWikibaseRepoPageTestBase.php +++ b/repo/tests/phpunit/includes/Specials/SpecialWikibaseRepoPageTestBase.php @@ -67,7 +67,7 @@ abstract class SpecialWikibaseRepoPageTestBase extends SpecialPageTestBase { $titleLookup = $this->createMock( EntityTitleStoreLookup::class ); $titleLookup->method( 'getTitleForId' ) - ->willReturnCallback( function( EntityId $id ) { + ->willReturnCallback( static function( EntityId $id ) { return Title::makeTitle( NS_MAIN, $id->getEntityType() . ':' . $id->getSerialization() ); } ); diff --git a/repo/tests/phpunit/includes/Store/CachingPrefetchingTermLookupTest.php b/repo/tests/phpunit/includes/Store/CachingPrefetchingTermLookupTest.php index e19fe3b..c585387 100644 --- a/repo/tests/phpunit/includes/Store/CachingPrefetchingTermLookupTest.php +++ b/repo/tests/phpunit/includes/Store/CachingPrefetchingTermLookupTest.php @@ -643,7 +643,7 @@ class CachingPrefetchingTermLookupTest extends TestCase { private function newStubRedirectResolvingRevisionLookup() { $revisionAndRedirectResolver = $this->createMock( RedirectResolvingLatestRevisionLookup::class ); $revisionAndRedirectResolver->method( 'lookupLatestRevisionResolvingRedirect' ) - ->willReturnCallback( function ( EntityId $id ) { + ->willReturnCallback( static function ( EntityId $id ) { return [ self::TEST_REVISION, $id ]; } ); diff --git a/repo/tests/phpunit/includes/Store/CachingPropertyInfoTest.php b/repo/tests/phpunit/includes/Store/CachingPropertyInfoTest.php index e09f8a8..b901ea4 100644 --- a/repo/tests/phpunit/includes/Store/CachingPropertyInfoTest.php +++ b/repo/tests/phpunit/includes/Store/CachingPropertyInfoTest.php @@ -44,7 +44,7 @@ class CachingPropertyInfoTest extends MediaWikiIntegrationTestCase { private function getEntityComposer() { return new EntityIdComposer( [ - Property::ENTITY_TYPE => function( $uniquePart ) { + Property::ENTITY_TYPE => static function( $uniquePart ) { return new NumericPropertyId( 'P' . $uniquePart ); }, ] ); diff --git a/repo/tests/phpunit/includes/Store/Sql/SqlEntityIdPagerFactoryTest.php b/repo/tests/phpunit/includes/Store/Sql/SqlEntityIdPagerFactoryTest.php index b17d28d..858b3c2 100644 --- a/repo/tests/phpunit/includes/Store/Sql/SqlEntityIdPagerFactoryTest.php +++ b/repo/tests/phpunit/includes/Store/Sql/SqlEntityIdPagerFactoryTest.php @@ -39,7 +39,7 @@ class SqlEntityIdPagerFactoryTest extends \PHPUnit\Framework\TestCase { $entityIdLookup = $this->createMock( EntityIdLookup::class ); $entityIdLookup->method( 'getEntityIdForTitle' ) - ->willReturnCallback( function ( Title $title ) { + ->willReturnCallback( static function ( Title $title ) { return new ItemId( $title->getText() ); } ); diff --git a/repo/tests/phpunit/includes/Store/Sql/SqlEntityIdPagerTest.php b/repo/tests/phpunit/includes/Store/Sql/SqlEntityIdPagerTest.php index 18c9917..9ab8b90 100644 --- a/repo/tests/phpunit/includes/Store/Sql/SqlEntityIdPagerTest.php +++ b/repo/tests/phpunit/includes/Store/Sql/SqlEntityIdPagerTest.php @@ -118,7 +118,7 @@ class SqlEntityIdPagerTest extends MediaWikiIntegrationTestCase { } private function getIdStrings( array $entities ) { - $ids = array_map( function ( $entity ) { + $ids = array_map( static function ( $entity ) { if ( $entity instanceof EntityDocument ) { $entity = $entity->getId(); } elseif ( $entity instanceof EntityRedirect ) { diff --git a/repo/tests/phpunit/includes/Store/Sql/SqlSiteLinkConflictLookupTest.php b/repo/tests/phpunit/includes/Store/Sql/SqlSiteLinkConflictLookupTest.php index c1b48af..97e3fda 100644 --- a/repo/tests/phpunit/includes/Store/Sql/SqlSiteLinkConflictLookupTest.php +++ b/repo/tests/phpunit/includes/Store/Sql/SqlSiteLinkConflictLookupTest.php @@ -81,7 +81,7 @@ class SqlSiteLinkConflictLookupTest extends MediaWikiIntegrationTestCase { private function newSqlSiteLinkConflictLookup() { $entityIdComposer = new EntityIdComposer( [ - 'item' => function ( $uniquePart ) { + 'item' => static function ( $uniquePart ) { return ItemId::newFromNumber( $uniquePart ); }, ] ); diff --git a/repo/tests/phpunit/includes/Store/Sql/WikiPageEntityMetaDataLookupTest.php b/repo/tests/phpunit/includes/Store/Sql/WikiPageEntityMetaDataLookupTest.php index ef4b716..f10763b 100644 --- a/repo/tests/phpunit/includes/Store/Sql/WikiPageEntityMetaDataLookupTest.php +++ b/repo/tests/phpunit/includes/Store/Sql/WikiPageEntityMetaDataLookupTest.php @@ -171,7 +171,7 @@ class WikiPageEntityMetaDataLookupTest extends MediaWikiIntegrationTestCase { $db->expects( $this->exactly( $selectCount ) ) ->method( 'select' ) - ->willReturnCallback( function( ...$args ) use ( $realDB ) { + ->willReturnCallback( static function( ...$args ) use ( $realDB ) { // Get the actual result $res = $realDB->select( ...$args ); diff --git a/repo/tests/phpunit/includes/Store/Sql/WikiPageEntityRedirectLookupTest.php b/repo/tests/phpunit/includes/Store/Sql/WikiPageEntityRedirectLookupTest.php index 4a74a80..b64e1eb 100644 --- a/repo/tests/phpunit/includes/Store/Sql/WikiPageEntityRedirectLookupTest.php +++ b/repo/tests/phpunit/includes/Store/Sql/WikiPageEntityRedirectLookupTest.php @@ -131,7 +131,7 @@ class WikiPageEntityRedirectLookupTest extends MediaWikiIntegrationTestCase { $entityTitleLookup = $this->createMock( EntityTitleStoreLookup::class ); $entityTitleLookup->method( 'getTitleForId' ) - ->willReturnCallback( function( EntityId $id ) { + ->willReturnCallback( static function( EntityId $id ) { return Title::makeTitle( NS_MAIN, $id->getSerialization() ); } ); @@ -142,7 +142,7 @@ class WikiPageEntityRedirectLookupTest extends MediaWikiIntegrationTestCase { $entityIdLookup = $this->createMock( EntityIdLookup::class ); $entityIdLookup->method( 'getEntityIdForTitle' ) - ->willReturnCallback( function( Title $title ) { + ->willReturnCallback( static function( Title $title ) { return new ItemId( $title->getText() ); } ); diff --git a/repo/tests/phpunit/includes/Store/Sql/WikiPageEntityStoreTest.php b/repo/tests/phpunit/includes/Store/Sql/WikiPageEntityStoreTest.php index bb8ed22..8cf863e 100644 --- a/repo/tests/phpunit/includes/Store/Sql/WikiPageEntityStoreTest.php +++ b/repo/tests/phpunit/includes/Store/Sql/WikiPageEntityStoreTest.php @@ -135,10 +135,10 @@ class WikiPageEntityStoreTest extends MediaWikiIntegrationTestCase { 'custom-type' => 'wikibase-custom-type', ], [ - 'item' => function() { + 'item' => static function() { return WikibaseRepo::getItemHandler(); }, - 'property' => function() { + 'property' => static function() { return WikibaseRepo::getPropertyHandler(); }, 'custom-type' => function() { @@ -969,10 +969,10 @@ class WikiPageEntityStoreTest extends MediaWikiIntegrationTestCase { 'property' => PropertyContent::CONTENT_MODEL_ID, ], [ - 'item' => function() { + 'item' => static function() { return WikibaseRepo::getItemHandler(); }, - 'property' => function() { + 'property' => static function() { return WikibaseRepo::getPropertyHandler(); }, ] @@ -1042,7 +1042,7 @@ class WikiPageEntityStoreTest extends MediaWikiIntegrationTestCase { return $result->onRedirect( $shouldNotBeCalled ) ->onNonexistentEntity( $shouldNotBeCalled ) - ->onConcreteRevision( function ( $revId ) { + ->onConcreteRevision( static function ( $revId ) { return $revId; } ) ->map(); diff --git a/repo/tests/phpunit/includes/Store/TypeDispatchingEntityTitleStoreLookupTest.php b/repo/tests/phpunit/includes/Store/TypeDispatchingEntityTitleStoreLookupTest.php index 27f451c..1c8a46f 100644 --- a/repo/tests/phpunit/includes/Store/TypeDispatchingEntityTitleStoreLookupTest.php +++ b/repo/tests/phpunit/includes/Store/TypeDispatchingEntityTitleStoreLookupTest.php @@ -24,7 +24,7 @@ class TypeDispatchingEntityTitleStoreLookupTest extends \PHPUnit\Framework\TestC public function testGivenInvalidCallback_getTitleForIdFails() { $lookup = new TypeDispatchingEntityTitleStoreLookup( [ - 'property' => function ( EntityTitleStoreLookup $defaultService ) { + 'property' => static function ( EntityTitleStoreLookup $defaultService ) { return (object)[]; }, ], diff --git a/repo/tests/phpunit/includes/Store/WikiPageEntityRevisionLookupTest.php b/repo/tests/phpunit/includes/Store/WikiPageEntityRevisionLookupTest.php index b015171..0fd740f 100644 --- a/repo/tests/phpunit/includes/Store/WikiPageEntityRevisionLookupTest.php +++ b/repo/tests/phpunit/includes/Store/WikiPageEntityRevisionLookupTest.php @@ -502,7 +502,7 @@ class WikiPageEntityRevisionLookupTest extends EntityRevisionLookupTestCase { $entityId->method( '__toString' )->willReturn( $idString ); $entityId->method( 'getSerialization' )->willReturn( $idString ); $entityId->method( 'equals' )->willReturnCallback( - function ( EntityId $otherEntityId ) use ( $entityId ) { + static function ( EntityId $otherEntityId ) use ( $entityId ) { return $otherEntityId->getSerialization() === $entityId->getSerialization(); } ); diff --git a/repo/tests/phpunit/includes/Store/WikiPageEntityStorePermissionCheckerTest.php b/repo/tests/phpunit/includes/Store/WikiPageEntityStorePermissionCheckerTest.php index 2dfef31..aa7ff0b 100644 --- a/repo/tests/phpunit/includes/Store/WikiPageEntityStorePermissionCheckerTest.php +++ b/repo/tests/phpunit/includes/Store/WikiPageEntityStorePermissionCheckerTest.php @@ -562,7 +562,7 @@ class WikiPageEntityStorePermissionCheckerTest extends MediaWikiIntegrationTestC $lookup = $this->createMock( EntityTitleLookup::class ); $lookup->method( 'getTitleForId' ) - ->willReturnCallback( function( EntityId $id ) { + ->willReturnCallback( static function( EntityId $id ) { if ( $id->getSerialization() === self::EXISTING_ITEM_ID ) { return Title::newFromLinkTarget( new TitleValue( WB_NS_ITEM, 'Test_Item' ) ); } diff --git a/repo/tests/phpunit/includes/ValidatorBuildersTest.php b/repo/tests/phpunit/includes/ValidatorBuildersTest.php index 153fd62..d433281 100644 --- a/repo/tests/phpunit/includes/ValidatorBuildersTest.php +++ b/repo/tests/phpunit/includes/ValidatorBuildersTest.php @@ -78,7 +78,7 @@ class ValidatorBuildersTest extends \PHPUnit\Framework\TestCase { $pageNormalizer = $this->createMock( MediaWikiPageNameNormalizer::class ); $pageNormalizer->method( 'normalizePageName' ) - ->willReturnCallback( function( $pageName ) { + ->willReturnCallback( static function( $pageName ) { return strpos( $pageName, 'NOT-FOUND' ) === false ? $pageName : false; } ); @@ -90,7 +90,7 @@ class ValidatorBuildersTest extends \PHPUnit\Framework\TestCase { $fileNameLookup->method( 'lookupFileName' ) ->with( $this->isType( 'string' ) ) - ->willReturnCallback( function( $fileName ) { + ->willReturnCallback( static function( $fileName ) { return strpos( $fileName, 'NOT-FOUND' ) === false ? $fileName : null; } ); diff --git a/repo/tests/phpunit/includes/Validators/CommonsMediaExistsValidatorTest.php b/repo/tests/phpunit/includes/Validators/CommonsMediaExistsValidatorTest.php index 2ae4bef..f840125 100644 --- a/repo/tests/phpunit/includes/Validators/CommonsMediaExistsValidatorTest.php +++ b/repo/tests/phpunit/includes/Validators/CommonsMediaExistsValidatorTest.php @@ -26,7 +26,7 @@ class CommonsMediaExistsValidatorTest extends \PHPUnit\Framework\TestCase { $fileNameLookup->method( 'lookupFileName' ) ->with( $this->isType( 'string' ) ) - ->willReturnCallback( function( $fileName ) { + ->willReturnCallback( static function( $fileName ) { return strpos( $fileName, 'NOT-FOUND' ) === false ? $fileName : null; } ); diff --git a/repo/tests/phpunit/includes/Validators/FingerprintUniquenessValidatorTest.php b/repo/tests/phpunit/includes/Validators/FingerprintUniquenessValidatorTest.php index a28304a..e58881e 100644 --- a/repo/tests/phpunit/includes/Validators/FingerprintUniquenessValidatorTest.php +++ b/repo/tests/phpunit/includes/Validators/FingerprintUniquenessValidatorTest.php @@ -65,7 +65,7 @@ class FingerprintUniquenessValidatorTest extends TestCase { ], 'old label not in ChangeOpResult - no collisions detected' => [ - 'getLabelMock' => function () { + 'getLabelMock' => static function () { return 'old label'; }, 'getDescriptionMock' => null, @@ -83,7 +83,7 @@ class FingerprintUniquenessValidatorTest extends TestCase { 'old description not in ChangeOpResult - no collisions detected' => [ 'getLabelMock' => null, - 'getDescriptionMock' => function () { + 'getDescriptionMock' => static function () { return 'old description'; }, 'detectLabelAndDescriptionCollisionMock' => function ( $lang, $label, $description ) { diff --git a/repo/tests/phpunit/includes/Validators/InterWikiLinkExistsValidatorTest.php b/repo/tests/phpunit/includes/Validators/InterWikiLinkExistsValidatorTest.php index e903ee7..25f2783 100644 --- a/repo/tests/phpunit/includes/Validators/InterWikiLinkExistsValidatorTest.php +++ b/repo/tests/phpunit/includes/Validators/InterWikiLinkExistsValidatorTest.php @@ -28,7 +28,7 @@ class InterWikiLinkExistsValidatorTest extends \PHPUnit\Framework\TestCase { $pageNormalizer->method( 'normalizePageName' ) ->with( $this->isType( 'string' ), $this->anything() ) - ->willReturnCallback( function( $pageName ) { + ->willReturnCallback( static function( $pageName ) { return $pageName === self::EXISTING_PAGE ? $pageName : false; } ); diff --git a/repo/tests/phpunit/includes/Validators/SnakValidatorTest.php b/repo/tests/phpunit/includes/Validators/SnakValidatorTest.php index 945beb2..0d85273 100644 --- a/repo/tests/phpunit/includes/Validators/SnakValidatorTest.php +++ b/repo/tests/phpunit/includes/Validators/SnakValidatorTest.php @@ -72,7 +72,7 @@ class SnakValidatorTest extends \PHPUnit\Framework\TestCase { $this->validatorFactory = $this->createMock( DataTypeValidatorFactory::class ); $this->validatorFactory->method( 'getValidators' ) - ->willReturnCallback( function( $dataTypeId ) use ( + ->willReturnCallback( static function( $dataTypeId ) use ( $numericValidator, $alphabeticValidator, $lengthValidator diff --git a/repo/tests/phpunit/includes/Validators/StringLengthValidatorTest.php b/repo/tests/phpunit/includes/Validators/StringLengthValidatorTest.php index 1360526..e854d8a 100644 --- a/repo/tests/phpunit/includes/Validators/StringLengthValidatorTest.php +++ b/repo/tests/phpunit/includes/Validators/StringLengthValidatorTest.php @@ -55,7 +55,7 @@ class StringLengthValidatorTest extends \PHPUnit\Framework\TestCase { public function testWhenErrorCodePrefixIsPassedAndErrorIsTriggered() { $errorCodePrefix = '[PREFIX]'; $maxLength = 0; - $tooLongFunction = function() use ( $maxLength ) { + $tooLongFunction = static function() use ( $maxLength ) { return $maxLength + 1; }; diff --git a/repo/tests/phpunit/includes/Validators/ValidatorErrorLocalizerTest.php b/repo/tests/phpunit/includes/Validators/ValidatorErrorLocalizerTest.php index 8053074..f363667 100644 --- a/repo/tests/phpunit/includes/Validators/ValidatorErrorLocalizerTest.php +++ b/repo/tests/phpunit/includes/Validators/ValidatorErrorLocalizerTest.php @@ -27,7 +27,7 @@ class ValidatorErrorLocalizerTest extends \PHPUnit\Framework\TestCase { $mock = $this->createMock( ValueFormatter::class ); $mock->method( 'format' ) ->willReturnCallback( - function ( $param ) { + static function ( $param ) { if ( is_array( $param ) ) { $param = implode( '|', $param ); } diff --git a/repo/tests/phpunit/includes/ValueParserFactoryTest.php b/repo/tests/phpunit/includes/ValueParserFactoryTest.php index c9456f8..45ca511 100644 --- a/repo/tests/phpunit/includes/ValueParserFactoryTest.php +++ b/repo/tests/phpunit/includes/ValueParserFactoryTest.php @@ -35,7 +35,7 @@ class ValueParserFactoryTest extends \PHPUnit\Framework\TestCase { 'id' => 'not a callable', ] ], 'id is not a string' => [ [ - function () { + static function () { }, ] ], ]; @@ -49,7 +49,7 @@ class ValueParserFactoryTest extends \PHPUnit\Framework\TestCase { } public function testNewParser_withInvalidReturnValue() { - $factory = new ValueParserFactory( [ 'id' => function () { + $factory = new ValueParserFactory( [ 'id' => static function () { return 'invalid'; } ] ); @@ -72,7 +72,7 @@ class ValueParserFactoryTest extends \PHPUnit\Framework\TestCase { return [ [ [ - 'foo' => function() { + 'foo' => static function() { return new NullParser(); }, ], diff --git a/repo/tests/phpunit/maintenance/DumpJsonTest.php b/repo/tests/phpunit/maintenance/DumpJsonTest.php index 6f58732..5e83fbb 100644 --- a/repo/tests/phpunit/maintenance/DumpJsonTest.php +++ b/repo/tests/phpunit/maintenance/DumpJsonTest.php @@ -202,7 +202,7 @@ class DumpJsonTest extends MediaWikiIntegrationTestCase { private function getMockPropertyDataTypeLookup() { $mockDataTypeLookup = $this->createMock( PropertyDataTypeLookup::class ); $mockDataTypeLookup->method( 'getDataTypeIdForProperty' ) - ->willReturnCallback( function( PropertyId $id ) { + ->willReturnCallback( static function( PropertyId $id ) { if ( $id->getSerialization() === 'P999' ) { throw new PropertyDataTypeLookupException( $id ); } diff --git a/repo/tests/phpunit/maintenance/DumpRdfTest.php b/repo/tests/phpunit/maintenance/DumpRdfTest.php index fcd2d34..36d736b 100644 --- a/repo/tests/phpunit/maintenance/DumpRdfTest.php +++ b/repo/tests/phpunit/maintenance/DumpRdfTest.php @@ -283,7 +283,7 @@ class DumpRdfTest extends MediaWikiIntegrationTestCase { private function getMockPropertyDataTypeLookup(): PropertyDataTypeLookup { $mockDataTypeLookup = $this->createMock( PropertyDataTypeLookup::class ); $mockDataTypeLookup->method( 'getDataTypeIdForProperty' ) - ->willReturnCallback( function( NumericPropertyId $id ) { + ->willReturnCallback( static function( NumericPropertyId $id ) { if ( $id->getSerialization() === 'P999' ) { throw new PropertyDataTypeLookupException( $id ); } diff --git a/repo/tests/phpunit/unit/ServiceWiring/AllTypesEntityDeserializerTest.php b/repo/tests/phpunit/unit/ServiceWiring/AllTypesEntityDeserializerTest.php index d086b36..74ce799 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/AllTypesEntityDeserializerTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/AllTypesEntityDeserializerTest.php @@ -21,11 +21,11 @@ class AllTypesEntityDeserializerTest extends ServiceWiringTestCase { private function makeMockDeserializer( string $validSerialization ): callable { $deserializer = $this->createMock( DispatchableDeserializer::class ); $deserializer->method( 'isDeserializerFor' ) - ->willReturnCallback( function ( $serialization ) use ( $validSerialization ) { + ->willReturnCallback( static function ( $serialization ) use ( $validSerialization ) { return $serialization == $validSerialization; } ); - return function () use ( $deserializer ): DispatchableDeserializer { + return static function () use ( $deserializer ): DispatchableDeserializer { return $deserializer; }; } diff --git a/repo/tests/phpunit/unit/ServiceWiring/ContentModelMappingsTest.php b/repo/tests/phpunit/unit/ServiceWiring/ContentModelMappingsTest.php index 7ee166a..3d02095 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/ContentModelMappingsTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/ContentModelMappingsTest.php @@ -35,7 +35,7 @@ class ContentModelMappingsTest extends ServiceWiringTestCase { $this->mockService( 'WikibaseRepo.EntityTypeDefinitions', new EntityTypeDefinitions( [] ) ); $this->configureHookContainer( [ - 'WikibaseContentModelMapping' => [ function ( array &$map ) { + 'WikibaseContentModelMapping' => [ static function ( array &$map ) { $map['test2'] = 'test2-content-model'; } ], ] ); diff --git a/repo/tests/phpunit/unit/ServiceWiring/DataTypeDefinitionsTest.php b/repo/tests/phpunit/unit/ServiceWiring/DataTypeDefinitionsTest.php index b4fbf86..9978263 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/DataTypeDefinitionsTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/DataTypeDefinitionsTest.php @@ -36,7 +36,7 @@ class DataTypeDefinitionsTest extends ServiceWiringTestCase { public function testRunsHook(): void { $this->configureHookContainer( [ - 'WikibaseRepoDataTypes' => [ function ( array &$dataTypes ) { + 'WikibaseRepoDataTypes' => [ static function ( array &$dataTypes ) { $dataTypes['PT:test'] = [ 'value-type' => 'string' ]; } ], ] ); diff --git a/repo/tests/phpunit/unit/ServiceWiring/DataTypeValidatorFactoryTest.php b/repo/tests/phpunit/unit/ServiceWiring/DataTypeValidatorFactoryTest.php index 9ad0bc8..4c38150 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/DataTypeValidatorFactoryTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/DataTypeValidatorFactoryTest.php @@ -37,7 +37,7 @@ class DataTypeValidatorFactoryTest extends ServiceWiringTestCase { $dataTypeDefs = new DataTypeDefinitions( [ 'PT:some-property' => [ 'value-type' => 'string', - 'validator-factory-callback' => function () use ( $fakeValidators ): array { + 'validator-factory-callback' => static function () use ( $fakeValidators ): array { return $fakeValidators; }, ], diff --git a/repo/tests/phpunit/unit/ServiceWiring/EntityChangeOpProviderTest.php b/repo/tests/phpunit/unit/ServiceWiring/EntityChangeOpProviderTest.php index ce7d103..ed5a172 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/EntityChangeOpProviderTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/EntityChangeOpProviderTest.php @@ -28,7 +28,7 @@ class EntityChangeOpProviderTest extends ServiceWiringTestCase { $this->mockService( 'WikibaseRepo.EntityTypeDefinitions', new EntityTypeDefinitions( [ 'test' => [ - EntityTypeDefinitions::CHANGEOP_DESERIALIZER_CALLBACK => function () use ( $changeOpDeserializer ) { + EntityTypeDefinitions::CHANGEOP_DESERIALIZER_CALLBACK => static function () use ( $changeOpDeserializer ) { return $changeOpDeserializer; }, ], diff --git a/repo/tests/phpunit/unit/ServiceWiring/EntityDifferTest.php b/repo/tests/phpunit/unit/ServiceWiring/EntityDifferTest.php index 69f2f8a..c5efd0e 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/EntityDifferTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/EntityDifferTest.php @@ -26,13 +26,13 @@ class EntityDifferTest extends ServiceWiringTestCase { $this->mockService( 'WikibaseRepo.EntityTypeDefinitions', new EntityTypeDefinitions( [ 'test1' => [ - EntityTypeDefinitions::ENTITY_DIFFER_STRATEGY_BUILDER => function () use ( &$calls1, $strategy1 ) { + EntityTypeDefinitions::ENTITY_DIFFER_STRATEGY_BUILDER => static function () use ( &$calls1, $strategy1 ) { $calls1++; return $strategy1; }, ], 'test2' => [ - EntityTypeDefinitions::ENTITY_DIFFER_STRATEGY_BUILDER => function () use ( &$calls2, $strategy2 ) { + EntityTypeDefinitions::ENTITY_DIFFER_STRATEGY_BUILDER => static function () use ( &$calls2, $strategy2 ) { $calls2++; return $strategy2; }, diff --git a/repo/tests/phpunit/unit/ServiceWiring/EntityFactoryTest.php b/repo/tests/phpunit/unit/ServiceWiring/EntityFactoryTest.php index 29733ad..b976e45 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/EntityFactoryTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/EntityFactoryTest.php @@ -36,7 +36,7 @@ class EntityFactoryTest extends ServiceWiringTestCase { 'WikibaseRepo.EntityTypeDefinitions', new EntityTypeDefinitions( [ 'something' => [ - EntityTypeDefinitions::ENTITY_FACTORY_CALLBACK => function () use ( $fakeEntity ) { + EntityTypeDefinitions::ENTITY_FACTORY_CALLBACK => static function () use ( $fakeEntity ) { return $fakeEntity; }, ], diff --git a/repo/tests/phpunit/unit/ServiceWiring/EntityIdComposerTest.php b/repo/tests/phpunit/unit/ServiceWiring/EntityIdComposerTest.php index 0aad9ec..92604c9 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/EntityIdComposerTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/EntityIdComposerTest.php @@ -22,7 +22,7 @@ class EntityIdComposerTest extends ServiceWiringTestCase { $this->mockService( 'WikibaseRepo.EntityTypeDefinitions', new EntityTypeDefinitions( [ 'test' => [ - EntityTypeDefinitions::ENTITY_ID_COMPOSER_CALLBACK => function ( $uniquePart ) { + EntityTypeDefinitions::ENTITY_ID_COMPOSER_CALLBACK => static function ( $uniquePart ) { return new ItemId( 'Q' . $uniquePart ); }, ], diff --git a/repo/tests/phpunit/unit/ServiceWiring/EntityIdParserTest.php b/repo/tests/phpunit/unit/ServiceWiring/EntityIdParserTest.php index 0e3a228..ec91085 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/EntityIdParserTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/EntityIdParserTest.php @@ -28,7 +28,7 @@ class EntityIdParserTest extends ServiceWiringTestCase { new EntityTypeDefinitions( [ 'test' => [ EntityTypeDefinitions::ENTITY_ID_PATTERN => '/^T[1-9][0-9]*$/', - EntityTypeDefinitions::ENTITY_ID_BUILDER => function ( $serialization ) { + EntityTypeDefinitions::ENTITY_ID_BUILDER => static function ( $serialization ) { return new ItemId( 'Q1000' . substr( $serialization, 1 ) ); }, ], @@ -52,7 +52,7 @@ class EntityIdParserTest extends ServiceWiringTestCase { $entityTypeDefinitions = new EntityTypeDefinitions( [ 'test' => [ EntityTypeDefinitions::ENTITY_ID_PATTERN => '/^T[1-9][0-9]*$/', - EntityTypeDefinitions::ENTITY_ID_BUILDER => function ( $serialization ) { + EntityTypeDefinitions::ENTITY_ID_BUILDER => static function ( $serialization ) { return new ItemId( 'Q1000' . substr( $serialization, 1 ) ); }, ], diff --git a/repo/tests/phpunit/unit/ServiceWiring/EntityNamespaceLookupTest.php b/repo/tests/phpunit/unit/ServiceWiring/EntityNamespaceLookupTest.php index 2d65d09..a8a3a66 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/EntityNamespaceLookupTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/EntityNamespaceLookupTest.php @@ -22,7 +22,7 @@ class EntityNamespaceLookupTest extends ServiceWiringTestCase { private function getEntitySources( array ...$entityNSDefinitions ): EntitySourceDefinitions { return new EntitySourceDefinitions( array_map( - function ( array $nsDefinitions, int $idx ): DatabaseEntitySource { + static function ( array $nsDefinitions, int $idx ): DatabaseEntitySource { return new DatabaseEntitySource( 'test-' . $idx, false, diff --git a/repo/tests/phpunit/unit/ServiceWiring/EntityPatcherTest.php b/repo/tests/phpunit/unit/ServiceWiring/EntityPatcherTest.php index 7c95e11..35c81e6 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/EntityPatcherTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/EntityPatcherTest.php @@ -26,13 +26,13 @@ class EntityPatcherTest extends ServiceWiringTestCase { $this->mockService( 'WikibaseRepo.EntityTypeDefinitions', new EntityTypeDefinitions( [ 'test1' => [ - EntityTypeDefinitions::ENTITY_PATCHER_STRATEGY_BUILDER => function () use ( &$calls1, $strategy1 ) { + EntityTypeDefinitions::ENTITY_PATCHER_STRATEGY_BUILDER => static function () use ( &$calls1, $strategy1 ) { $calls1++; return $strategy1; }, ], 'test2' => [ - EntityTypeDefinitions::ENTITY_PATCHER_STRATEGY_BUILDER => function () use ( &$calls2, $strategy2 ) { + EntityTypeDefinitions::ENTITY_PATCHER_STRATEGY_BUILDER => static function () use ( &$calls2, $strategy2 ) { $calls2++; return $strategy2; }, diff --git a/repo/tests/phpunit/unit/ServiceWiring/EntitySearchHelperCallbacksTest.php b/repo/tests/phpunit/unit/ServiceWiring/EntitySearchHelperCallbacksTest.php index a379c09..e8c1a05 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/EntitySearchHelperCallbacksTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/EntitySearchHelperCallbacksTest.php @@ -37,7 +37,7 @@ class EntitySearchHelperCallbacksTest extends ServiceWiringTestCase { ->willReturn( new HookContainer( new StaticHookRegistry( [ 'WikibaseRepoEntitySearchHelperCallbacks' => [ - 'callback' => function ( &$callbacks ) use ( $callable3 ) { + 'callback' => static function ( &$callbacks ) use ( $callable3 ) { $callbacks['type3'] = $callable3; }, ], diff --git a/repo/tests/phpunit/unit/ServiceWiring/EntityTypeDefinitionsTest.php b/repo/tests/phpunit/unit/ServiceWiring/EntityTypeDefinitionsTest.php index d94c29e..3503a99 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/EntityTypeDefinitionsTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/EntityTypeDefinitionsTest.php @@ -28,7 +28,7 @@ class EntityTypeDefinitionsTest extends ServiceWiringTestCase { public function testRunsHook(): void { $this->configureHookContainer( [ - 'WikibaseRepoEntityTypes' => [ function ( array &$entityTypes ) { + 'WikibaseRepoEntityTypes' => [ static function ( array &$entityTypes ) { $entityTypes['test'] = []; } ], ] ); diff --git a/repo/tests/phpunit/unit/ServiceWiring/FulltextSearchTypesTest.php b/repo/tests/phpunit/unit/ServiceWiring/FulltextSearchTypesTest.php index 95cd706..cc87b6a 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/FulltextSearchTypesTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/FulltextSearchTypesTest.php @@ -16,7 +16,7 @@ use Wikibase\Repo\Tests\Unit\ServiceWiringTestCase; class FulltextSearchTypesTest extends ServiceWiringTestCase { private function getEntityTypeDefinitions( array $typesToContexts ): EntityTypeDefinitions { - return new EntityTypeDefinitions( array_map( function ( $context ){ + return new EntityTypeDefinitions( array_map( static function ( $context ){ return [ EntityTypeDefinitions::FULLTEXT_SEARCH_CONTEXT => $context, ]; @@ -43,7 +43,7 @@ class FulltextSearchTypesTest extends ServiceWiringTestCase { public function testReturnsCallbackResults(): void { $mockFulltextContextStrings = [ 'something' => 'test-context', - 'another' => function () { + 'another' => static function () { return 'another-context'; }, ]; diff --git a/repo/tests/phpunit/unit/ServiceWiring/ItemVocabularyBaseUriTest.php b/repo/tests/phpunit/unit/ServiceWiring/ItemVocabularyBaseUriTest.php index afa0c95..6ee6a93 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/ItemVocabularyBaseUriTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/ItemVocabularyBaseUriTest.php @@ -25,7 +25,7 @@ class ItemVocabularyBaseUriTest extends ServiceWiringTestCase { return new EntitySourceDefinitions( array_map( - function ( string $baseUri, array $entityTypes, int $idx ): DatabaseEntitySource { + static function ( string $baseUri, array $entityTypes, int $idx ): DatabaseEntitySource { return new DatabaseEntitySource( 'test' . $idx, false, diff --git a/repo/tests/phpunit/unit/ServiceWiring/LocalEntityNamespaceLookupTest.php b/repo/tests/phpunit/unit/ServiceWiring/LocalEntityNamespaceLookupTest.php index b30f9e8..0bfb6c7 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/LocalEntityNamespaceLookupTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/LocalEntityNamespaceLookupTest.php @@ -27,7 +27,7 @@ class LocalEntityNamespaceLookupTest extends ServiceWiringTestCase { new DatabaseEntitySource( 'local', false, - array_map( function ( $nsId ) { + array_map( static function ( $nsId ) { return [ 'namespaceId' => $nsId, 'slot' => SlotRecord::MAIN, diff --git a/repo/tests/phpunit/unit/ServiceWiring/ValueParserFactoryTest.php b/repo/tests/phpunit/unit/ServiceWiring/ValueParserFactoryTest.php index 15ac439..b657cb3 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/ValueParserFactoryTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/ValueParserFactoryTest.php @@ -85,7 +85,7 @@ class ValueParserFactoryTest extends ServiceWiringTestCase { } private function makeParserFactoryCallback(): callable { - return function () { + return static function () { throw new AssertionError( 'Should never be called' ); }; } diff --git a/repo/tests/phpunit/unit/ServiceWiring/ValueSnakRdfBuilderFactoryTest.php b/repo/tests/phpunit/unit/ServiceWiring/ValueSnakRdfBuilderFactoryTest.php index 3783c7c..983a76c 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/ValueSnakRdfBuilderFactoryTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/ValueSnakRdfBuilderFactoryTest.php @@ -22,7 +22,7 @@ class ValueSnakRdfBuilderFactoryTest extends ServiceWiringTestCase { $this->mockService( 'WikibaseRepo.DataTypeDefinitions', new DataTypeDefinitions( [ 'VT:test' => [ - 'rdf-builder-factory-callback' => function () { + 'rdf-builder-factory-callback' => static function () { return null; }, ], diff --git a/repo/tests/phpunit/unit/ServiceWiring/WikibaseContentLanguagesTest.php b/repo/tests/phpunit/unit/ServiceWiring/WikibaseContentLanguagesTest.php index 55a1aff..c20f83e 100644 --- a/repo/tests/phpunit/unit/ServiceWiring/WikibaseContentLanguagesTest.php +++ b/repo/tests/phpunit/unit/ServiceWiring/WikibaseContentLanguagesTest.php @@ -19,7 +19,7 @@ class WikibaseContentLanguagesTest extends ServiceWiringTestCase { public function testConstruction() { $testLanguages = new StaticContentLanguages( [ 'test' ] ); $this->configureHookContainer( [ - 'WikibaseContentLanguages' => [ function ( array &$contentLanguages ) use ( $testLanguages ) { + 'WikibaseContentLanguages' => [ static function ( array &$contentLanguages ) use ( $testLanguages ) { $contentLanguages['test'] = $testLanguages; } ], ] ); diff --git a/repo/tests/phpunit/unit/includes/Hooks/EntityDataPurgerTest.php b/repo/tests/phpunit/unit/includes/Hooks/EntityDataPurgerTest.php index d89f6e8..bc90ea5 100644 --- a/repo/tests/phpunit/unit/includes/Hooks/EntityDataPurgerTest.php +++ b/repo/tests/phpunit/unit/includes/Hooks/EntityDataPurgerTest.php @@ -136,7 +136,7 @@ class EntityDataPurgerTest extends MediaWikiUnitTestCase { $jobQueueGroup = $this->createMock( JobQueueGroup::class ); $jobQueueGroup->expects( $this->once() ) ->method( 'lazyPush' ) - ->willReturnCallback( function ( IJobSpecification $job ) use ( &$actualJob ) { + ->willReturnCallback( static function ( IJobSpecification $job ) use ( &$actualJob ) { $actualJob = $job; } ); diff --git a/view/resources.php b/view/resources.php index 5f11a7b..9da8b8e 100644 --- a/view/resources.php +++ b/view/resources.php @@ -12,7 +12,7 @@ use Wikibase\View\Termbox\TermboxModule; * @license GPL-2.0-or-later * @author Adrian Heine <adrian.heine@wikimedia.de> */ -return call_user_func( function() { +return call_user_func( static function() { $moduleTemplate = [ 'localBasePath' => __DIR__ . '/resources', 'remoteExtPath' => 'Wikibase/view/resources', @@ -962,7 +962,7 @@ return call_user_func( function() { 'mountTermbox.js', [ 'name' => 'config.json', - 'callback' => function () { + 'callback' => static function () { return [ 'tags' => WikibaseRepo::getSettings()->getSetting( 'termboxTags' ), 'tempUserEnabled' => MediaWikiServices::getInstance()->getTempUserConfig()->isEnabled(), @@ -984,7 +984,7 @@ return call_user_func( function() { 'dist/wikibase.termbox.init.js', [ 'name' => 'termbox.config.js', - 'callback' => function ( Context $context ) { + 'callback' => static function ( Context $context ) { global $wgEditSubmitButtonLabelPublish; $saveMessageKey = ( $wgEditSubmitButtonLabelPublish ) ? 'wikibase-publish' : 'wikibase-save'; diff --git a/view/resources/templates.php b/view/resources/templates.php index 5c03a42..aa2e149 100644 --- a/view/resources/templates.php +++ b/view/resources/templates.php @@ -12,7 +12,7 @@ namespace Wikibase; * @return array templates */ -return call_user_func( function() { +return call_user_func( static function() { $templates = []; $templates['wikibase-entityview'] = diff --git a/view/src/DummyLocalizedTextProvider.php b/view/src/DummyLocalizedTextProvider.php index 1af3edf..0a76688 100644 --- a/view/src/DummyLocalizedTextProvider.php +++ b/view/src/DummyLocalizedTextProvider.php @@ -23,7 +23,7 @@ class DummyLocalizedTextProvider implements LocalizedTextProvider { public function getEscaped( $key, array $params = [] ) { return $this->get( htmlspecialchars( $key ), - array_map( function ( $param ) { + array_map( static function ( $param ) { return $param instanceof RawMessageParameter ? $param->getContents() : htmlspecialchars( $param ); }, $params ) ); diff --git a/view/src/FallbackChainModuleMethods.php b/view/src/FallbackChainModuleMethods.php index 9d64594..388e3df 100644 --- a/view/src/FallbackChainModuleMethods.php +++ b/view/src/FallbackChainModuleMethods.php @@ -21,7 +21,7 @@ class FallbackChainModuleMethods { return $localCache->getWithSetCallback( $localCache->makeKey( 'wikibase-fallback-chains' ), $localCache::TTL_WEEK, - function () use ( $services ) { + static function () use ( $services ) { $startTime = microtime( true ); $fallbackChainFactory = WikibaseRepo::getLanguageFallbackChainFactory( $services ); diff --git a/view/src/SiteLinksView.php b/view/src/SiteLinksView.php index 6d1673e..4f045d3 100644 --- a/view/src/SiteLinksView.php +++ b/view/src/SiteLinksView.php @@ -240,7 +240,7 @@ class SiteLinksView { // Sort the sitelinks according to their global id usort( $siteLinksForTable, - function( array $a, array $b ) { + static function( array $a, array $b ) { /** @var SiteLink[] $a */ /** @var SiteLink[] $b */ return strcmp( $a['siteLink']->getSiteId(), $b['siteLink']->getSiteId() ); diff --git a/view/src/Termbox/Renderer/TermboxRemoteRenderer.php b/view/src/Termbox/Renderer/TermboxRemoteRenderer.php index 693c2d5..17ed3a1 100644 --- a/view/src/Termbox/Renderer/TermboxRemoteRenderer.php +++ b/view/src/Termbox/Renderer/TermboxRemoteRenderer.php @@ -124,7 +124,7 @@ class TermboxRemoteRenderer implements TermboxRenderer { } private function getLanguageCodes( TermLanguageFallbackChain $preferredLanguages ) { - return array_map( function ( LanguageWithConversion $language ) { + return array_map( static function ( LanguageWithConversion $language ) { return $language->getLanguageCode(); }, $preferredLanguages->getFallbackChain() ); } diff --git a/view/tests/phpunit/FingerprintableEntityMetaTagsCreatorTest.php b/view/tests/phpunit/FingerprintableEntityMetaTagsCreatorTest.php index 8a745ab..718f6ea 100644 --- a/view/tests/phpunit/FingerprintableEntityMetaTagsCreatorTest.php +++ b/view/tests/phpunit/FingerprintableEntityMetaTagsCreatorTest.php @@ -20,10 +20,10 @@ class FingerprintableEntityMetaTagsCreatorTest extends EntityMetaTagsCreatorTest public static function provideTestGetMetaTags() { - $fingerprintableEntityMetaTagsFactory = function ( self $self ) { + $fingerprintableEntityMetaTagsFactory = static function ( self $self ) { $mock = $self->createMock( TermLanguageFallbackChain::class ); $mock->method( 'extractPreferredValue' ) - ->willReturnCallback( function( $input ) { + ->willReturnCallback( static function( $input ) { $langString = $input['en'] ?? null; if ( $langString !== null ) { return [ 'value' => $langString ]; diff --git a/view/tests/phpunit/SimpleEntityTermsViewTest.php b/view/tests/phpunit/SimpleEntityTermsViewTest.php index c6b8cf5..a1b50ca 100644 --- a/view/tests/phpunit/SimpleEntityTermsViewTest.php +++ b/view/tests/phpunit/SimpleEntityTermsViewTest.php @@ -47,13 +47,13 @@ class SimpleEntityTermsViewTest extends \PHPUnit\Framework\TestCase { $htmlTermRenderer = $this->createMock( HtmlTermRenderer::class ); $htmlTermRenderer->method( 'renderTerm' ) - ->willReturnCallback( function( Term $term ) { + ->willReturnCallback( static function( Term $term ) { return htmlspecialchars( $term->getText() ); } ); $labelDescriptionLookup = $this->createMock( LabelDescriptionLookup::class ); $labelDescriptionLookup->method( 'getLabel' ) - ->willReturnCallback( function( EntityId $entityId ) { + ->willReturnCallback( static function( EntityId $entityId ) { $terms = [ 'Q111' => new Term( 'language', '<LABEL>' ), 'Q666' => new Term( 'language', '<a href="#">evil html</a>' ), @@ -61,7 +61,7 @@ class SimpleEntityTermsViewTest extends \PHPUnit\Framework\TestCase { return $terms[$entityId->getSerialization()] ?? null; } ); $labelDescriptionLookup->method( 'getDescription' ) - ->willReturnCallback( function( EntityId $entityId ) { + ->willReturnCallback( static function( EntityId $entityId ) { return $entityId->getSerialization() === 'Q111' ? new Term( 'language', '<DESCRIPTION>' ) : null; } ); diff --git a/view/tests/phpunit/SiteLinksViewTest.php b/view/tests/phpunit/SiteLinksViewTest.php index 720e755..de68603 100644 --- a/view/tests/phpunit/SiteLinksViewTest.php +++ b/view/tests/phpunit/SiteLinksViewTest.php @@ -206,7 +206,7 @@ class SiteLinksViewTest extends \PHPUnit\Framework\TestCase { $formatter = $this->createMock( EntityIdFormatter::class ); $formatter->method( 'formatEntityId' ) - ->willReturnCallback( function( EntityId $id ) { + ->willReturnCallback( static function( EntityId $id ) { if ( $id->getSerialization() === 'Q42' ) { return 'Featured article'; } elseif ( $id->getSerialization() === 'Q56' ) { diff --git a/view/tests/phpunit/StatementGroupListViewTest.php b/view/tests/phpunit/StatementGroupListViewTest.php index 06aa0f0..7210dc0 100644 --- a/view/tests/phpunit/StatementGroupListViewTest.php +++ b/view/tests/phpunit/StatementGroupListViewTest.php @@ -199,7 +199,7 @@ class StatementGroupListViewTest extends \PHPUnit\Framework\TestCase { $statementHtmlGenerator = $this->createMock( StatementHtmlGenerator::class ); $statementHtmlGenerator->method( 'getHtmlForStatement' ) - ->willReturnCallback( function( Statement $statement, $editSectionHtml = null ) { + ->willReturnCallback( static function( Statement $statement, $editSectionHtml = null ) { return $statement->getGuid() . "\n"; } ); diff --git a/view/tests/phpunit/Termbox/Renderer/TermboxRemoteRendererTest.php b/view/tests/phpunit/Termbox/Renderer/TermboxRemoteRendererTest.php index 06040d0..ec0efdb 100644 --- a/view/tests/phpunit/Termbox/Renderer/TermboxRemoteRendererTest.php +++ b/view/tests/phpunit/Termbox/Renderer/TermboxRemoteRendererTest.php @@ -347,7 +347,7 @@ class TermboxRemoteRendererTest extends TestCase { $stubContentLanguages->method( 'hasLanguage' ) ->willReturn( true ); $languageFactory = MediaWikiServices::getInstance()->getLanguageFactory(); - return new TermLanguageFallbackChain( array_map( function ( $languageCode ) use ( $languageFactory ) { + return new TermLanguageFallbackChain( array_map( static function ( $languageCode ) use ( $languageFactory ) { return LanguageWithConversion::factory( $languageFactory->getLanguage( $languageCode ) ); }, $languages ), $stubContentLanguages ); } diff --git a/view/tests/phpunit/TermsListViewTest.php b/view/tests/phpunit/TermsListViewTest.php index 4b66a19..63a1efc 100644 --- a/view/tests/phpunit/TermsListViewTest.php +++ b/view/tests/phpunit/TermsListViewTest.php @@ -40,7 +40,7 @@ class TermsListViewTest extends \PHPUnit\Framework\TestCase { $languageNameLookup = $this->createMock( LanguageNameLookup::class ); $languageNameLookup->expects( $this->exactly( $languageNameCalls ) ) ->method( 'getNameForTerms' ) - ->willReturnCallback( function( $languageCode ) { + ->willReturnCallback( static function( $languageCode ) { return "<LANGUAGENAME-$languageCode>"; } ); $languageNameLookup->expects( $this->never() ) @@ -48,7 +48,7 @@ class TermsListViewTest extends \PHPUnit\Framework\TestCase { $languageDirectionalityLookup = $this->createMock( LanguageDirectionalityLookup::class ); $languageDirectionalityLookup->method( 'getDirectionality' ) - ->willReturnCallback( function( $languageCode ) { + ->willReturnCallback( static function( $languageCode ) { return [ 'en' => 'ltr', 'arc' => 'rtl', diff --git a/view/tests/phpunit/ToolbarEditSectionGeneratorTest.php b/view/tests/phpunit/ToolbarEditSectionGeneratorTest.php index 4b44217..c26e161 100644 --- a/view/tests/phpunit/ToolbarEditSectionGeneratorTest.php +++ b/view/tests/phpunit/ToolbarEditSectionGeneratorTest.php @@ -105,7 +105,7 @@ class ToolbarEditSectionGeneratorTest extends \PHPUnit\Framework\TestCase { private function newToolbarEditSectionGenerator() { $specialPageLinker = $this->createMock( SpecialPageLinker::class ); $specialPageLinker->method( 'getLink' ) - ->willReturnCallback( function( $specialPage, $params = [] ) { + ->willReturnCallback( static function( $specialPage, $params = [] ) { return 'Special:' . $specialPage . '/' . implode( '/', $params ); } ); -- 2.39.2
$ date --- stdout --- Fri Dec 13 07:37:59 UTC 2024 --- end --- $ git clone file:///srv/git/mediawiki-extensions-Wikibase.git repo --depth=1 -b master --- stderr --- Cloning into 'repo'... --- stdout --- --- end --- $ git config user.name libraryupgrader --- stdout --- --- end --- $ git config user.email tools.libraryupgrader@tools.wmflabs.org --- stdout --- --- end --- $ git submodule update --init --- stderr --- Submodule 'lib/resources/wikibase-api' (https://gerrit.wikimedia.org/r/wikibase/javascript-api) registered for path 'lib/resources/wikibase-api' Submodule 'view/lib/wikibase-data-model' (https://phabricator.wikimedia.org/source/wikibase-data-model.git) registered for path 'view/lib/wikibase-data-model' Submodule 'view/lib/wikibase-data-values' (https://phabricator.wikimedia.org/source/datavalues-javascript.git) registered for path 'view/lib/wikibase-data-values' Submodule 'view/lib/wikibase-data-values-value-view' (https://gerrit.wikimedia.org/r/data-values/value-view) registered for path 'view/lib/wikibase-data-values-value-view' Submodule 'view/lib/wikibase-serialization' (https://phabricator.wikimedia.org/source/wikibase-serialization.git) registered for path 'view/lib/wikibase-serialization' Submodule 'view/lib/wikibase-termbox' (https://gerrit.wikimedia.org/r/wikibase/termbox) registered for path 'view/lib/wikibase-termbox' Cloning into '/src/repo/lib/resources/wikibase-api'... Cloning into '/src/repo/view/lib/wikibase-data-model'... Cloning into '/src/repo/view/lib/wikibase-data-values'... Cloning into '/src/repo/view/lib/wikibase-data-values-value-view'... Cloning into '/src/repo/view/lib/wikibase-serialization'... Cloning into '/src/repo/view/lib/wikibase-termbox'... --- stdout --- Submodule path 'lib/resources/wikibase-api': checked out '7f076e3534686ab35f7807462539fcef08b6e9f2' Submodule path 'view/lib/wikibase-data-model': checked out '6b304daeb804591ddc4520925337429ac086515c' Submodule path 'view/lib/wikibase-data-values': checked out '457733ebe7b0d090a67e2623350be2e4286077fe' Submodule path 'view/lib/wikibase-data-values-value-view': checked out '0bd65f4e0cd4defdc315e15d462a09e8b6d9bf8f' Submodule path 'view/lib/wikibase-serialization': checked out 'e9b9a736f19e42497bfe45cb6f323781b00b5023' Submodule path 'view/lib/wikibase-termbox': checked out '87f5df732da97a7acd29b20bfd4f1aedff509fbf' --- end --- $ grr init --- stdout --- Installed commit-msg hook. --- end --- $ git show-ref refs/heads/master --- stdout --- c8f017219dc50a6c5ac62433a54d0447b19d69bb refs/heads/master --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "@wdio/cli": { "name": "@wdio/cli", "severity": "high", "isDirect": true, "via": [ "webdriverio", "yarn-install" ], "effects": [ "@wdio/local-runner", "@wdio/spec-reporter" ], "range": "5.4.10 - 8.40.6", "nodes": [ "node_modules/@wdio/cli" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.4.2", "isSemVerMajor": true } }, "@wdio/local-runner": { "name": "@wdio/local-runner", "severity": "high", "isDirect": true, "via": [ "@wdio/cli", "@wdio/runner" ], "effects": [], "range": "6.0.4 - 8.40.6", "nodes": [ "node_modules/@wdio/local-runner" ], "fixAvailable": { "name": "@wdio/local-runner", "version": "9.4.2", "isSemVerMajor": true } }, "@wdio/runner": { "name": "@wdio/runner", "severity": "high", "isDirect": false, "via": [ "webdriverio" ], "effects": [ "@wdio/local-runner" ], "range": "7.16.5 - 8.40.6", "nodes": [ "node_modules/@wdio/runner" ], "fixAvailable": { "name": "@wdio/local-runner", "version": "9.4.2", "isSemVerMajor": true } }, "@wdio/spec-reporter": { "name": "@wdio/spec-reporter", "severity": "high", "isDirect": true, "via": [ "@wdio/cli" ], "effects": [], "range": "6.0.4 - 8.0.0-alpha.631", "nodes": [ "node_modules/@wdio/spec-reporter" ], "fixAvailable": { "name": "@wdio/spec-reporter", "version": "9.4.2", "isSemVerMajor": true } }, "cross-spawn": { "name": "cross-spawn", "severity": "high", "isDirect": false, "via": [ { "source": 1100562, "name": "cross-spawn", "dependency": "cross-spawn", "title": "Regular Expression Denial of Service (ReDoS) in cross-spawn", "url": "https://github.com/advisories/GHSA-3xgq-45jj-v275", "severity": "high", "cwe": [ "CWE-1333" ], "cvss": { "score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, "range": "<6.0.6" } ], "effects": [ "yarn-install" ], "range": "<6.0.6", "nodes": [ "node_modules/yarn-install/node_modules/cross-spawn" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.4.2", "isSemVerMajor": true } }, "devtools": { "name": "devtools", "severity": "high", "isDirect": false, "via": [ "puppeteer-core" ], "effects": [], "range": ">=7.16.5", "nodes": [ "node_modules/devtools" ], "fixAvailable": true }, "mocha": { "name": "mocha", "severity": "low", "isDirect": true, "via": [ "nanoid" ], "effects": [], "range": "8.2.0 - 10.2.0", "nodes": [ "node_modules/mocha" ], "fixAvailable": true }, "mwbot": { "name": "mwbot", "severity": "moderate", "isDirect": false, "via": [ "request" ], "effects": [ "wdio-mediawiki", "wdio-wikibase" ], "range": ">=0.1.6", "nodes": [ "node_modules/mwbot" ], "fixAvailable": false }, "nanoid": { "name": "nanoid", "severity": "low", "isDirect": false, "via": [ { "source": 1101092, "name": "nanoid", "dependency": "nanoid", "title": "Infinite loop in nanoid", "url": "https://github.com/advisories/GHSA-mwcw-c2x4-8c55", "severity": "low", "cwe": [ "CWE-835" ], "cvss": { "score": 0, "vectorString": null }, "range": "<3.3.8" } ], "effects": [ "mocha" ], "range": "<3.3.8", "nodes": [ "node_modules/nanoid", "node_modules/postcss/node_modules/nanoid" ], "fixAvailable": true }, "puppeteer-core": { "name": "puppeteer-core", "severity": "high", "isDirect": false, "via": [ "ws" ], "effects": [ "devtools", "webdriverio" ], "range": "11.0.0 - 22.11.1", "nodes": [ "node_modules/devtools/node_modules/puppeteer-core", "node_modules/puppeteer-core" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.4.2", "isSemVerMajor": true } }, "request": { "name": "request", "severity": "moderate", "isDirect": false, "via": [ { "source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": [ "CWE-918" ], "cvss": { "score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" }, "range": "<=2.88.2" }, "tough-cookie" ], "effects": [ "mwbot" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": false }, "tough-cookie": { "name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": [ "CWE-1321" ], "cvss": { "score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" }, "range": "<4.1.3" } ], "effects": [ "request" ], "range": "<4.1.3", "nodes": [ "node_modules/tough-cookie" ], "fixAvailable": false }, "wdio-mediawiki": { "name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": [ "mwbot" ], "effects": [], "range": "*", "nodes": [ "node_modules/wdio-mediawiki" ], "fixAvailable": false }, "wdio-wikibase": { "name": "wdio-wikibase", "severity": "moderate", "isDirect": true, "via": [ "mwbot", "wdio-mediawiki" ], "effects": [], "range": "*", "nodes": [ "node_modules/wdio-wikibase" ], "fixAvailable": false }, "webdriverio": { "name": "webdriverio", "severity": "high", "isDirect": false, "via": [ "devtools", "puppeteer-core" ], "effects": [ "@wdio/cli", "@wdio/runner" ], "range": "7.16.5 - 8.40.6", "nodes": [ "node_modules/webdriverio" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.4.2", "isSemVerMajor": true } }, "ws": { "name": "ws", "severity": "high", "isDirect": false, "via": [ { "source": 1098392, "name": "ws", "dependency": "ws", "title": "ws affected by a DoS when handling a request with many HTTP headers", "url": "https://github.com/advisories/GHSA-3h5v-q93c-6h6q", "severity": "high", "cwe": [ "CWE-476" ], "cvss": { "score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, "range": ">=8.0.0 <8.17.1" } ], "effects": [ "puppeteer-core" ], "range": "8.0.0 - 8.17.0", "nodes": [ "node_modules/devtools/node_modules/ws", "node_modules/ws" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.4.2", "isSemVerMajor": true } }, "yarn-install": { "name": "yarn-install", "severity": "high", "isDirect": false, "via": [ "cross-spawn" ], "effects": [ "@wdio/cli" ], "range": "*", "nodes": [ "node_modules/yarn-install" ], "fixAvailable": { "name": "@wdio/cli", "version": "9.4.2", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 2, "moderate": 5, "high": 10, "critical": 0, "total": 17 }, "dependencies": { "prod": 1, "dev": 1144, "optional": 2, "peer": 2, "peerOptional": 0, "total": 1144 } } } --- end --- $ /usr/bin/composer install --- stderr --- No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information. Loading composer repositories with package information Updating dependencies Lock file operations: 58 installs, 0 updates, 0 removals - Locking composer/installers (v1.12.0) - Locking composer/pcre (3.3.2) - Locking composer/semver (3.4.3) - Locking composer/spdx-licenses (1.5.8) - Locking composer/xdebug-handler (3.0.5) - Locking data-values/common (1.2.0) - Locking data-values/data-values (3.1.0) - Locking data-values/geo (4.5.0) - Locking data-values/interfaces (1.2.0) - Locking data-values/number (0.12.3) - Locking data-values/serialization (1.2.5) - Locking data-values/time (1.2.0) - Locking dealerdirect/phpcodesniffer-composer-installer (v0.7.2) - Locking diff/diff (3.3.1) - Locking felixfbecker/advanced-json-rpc (v3.2.1) - Locking mediawiki/mediawiki-codesniffer (dev-master fd6ecb5) - Locking mediawiki/mediawiki-phan-config (0.14.0) - Locking mediawiki/minus-x (1.1.3) - Locking mediawiki/phan-taint-check-plugin (6.0.0) - Locking microsoft/tolerant-php-parser (v0.1.2) - Locking monolog/monolog (2.10.0) - Locking netresearch/jsonmapper (v4.5.0) - Locking onoi/message-reporter (1.4.2) - Locking phan/phan (5.4.3) - Locking php-parallel-lint/php-console-color (v1.0.1) - Locking php-parallel-lint/php-console-highlighter (v1.0.0) - Locking php-parallel-lint/php-parallel-lint (v1.4.0) - Locking phpat/phpat (0.10.20) - Locking phpcsstandards/phpcsextra (1.2.1) - Locking phpcsstandards/phpcsutils (1.0.12) - Locking phpdocumentor/reflection-common (2.2.0) - Locking phpdocumentor/reflection-docblock (5.3.0) - Locking phpdocumentor/type-resolver (1.6.2) - Locking phpstan/phpdoc-parser (0.4.9) - Locking phpstan/phpstan (1.12.12) - Locking psr/container (2.0.2) - Locking psr/http-message (1.1) - Locking psr/log (1.1.4) - Locking psr/simple-cache (1.0.1) - Locking sabre/event (5.1.7) - Locking serialization/serialization (4.1.0) - Locking slevomat/coding-standard (6.4.1) - Locking squizlabs/php_codesniffer (3.10.3) - Locking swaggest/json-diff (v3.11.0) - Locking symfony/console (v7.2.1) - Locking symfony/deprecation-contracts (v3.5.1) - Locking symfony/polyfill-ctype (v1.31.0) - Locking symfony/polyfill-intl-grapheme (v1.31.0) - Locking symfony/polyfill-intl-normalizer (v1.31.0) - Locking symfony/polyfill-mbstring (v1.31.0) - Locking symfony/polyfill-php80 (v1.31.0) - Locking symfony/service-contracts (v3.5.1) - Locking symfony/string (v7.2.0) - Locking tysonandre/var_representation_polyfill (0.1.3) - Locking webmozart/assert (1.11.0) - Locking wikimedia/at-ease (v3.0.0) - Locking wikimedia/purtle (v2.0.0) - Locking wikimedia/timestamp (v4.2.0) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 58 installs, 0 updates, 0 removals - Downloading dealerdirect/phpcodesniffer-composer-installer (v0.7.2) - Downloading data-values/geo (4.5.0) - Downloading data-values/number (0.12.3) - Downloading data-values/serialization (1.2.5) - Downloading data-values/time (1.2.0) - Downloading mediawiki/mediawiki-codesniffer (dev-master fd6ecb5) - Downloading phpdocumentor/type-resolver (1.6.2) - Downloading phpdocumentor/reflection-docblock (5.3.0) - Downloading phpstan/phpstan (1.12.12) - Downloading phpat/phpat (0.10.20) - Downloading psr/simple-cache (1.0.1) - Downloading phpstan/phpdoc-parser (0.4.9) - Downloading slevomat/coding-standard (6.4.1) 0/13 [>---------------------------] 0% 6/13 [============>---------------] 46% 12/13 [=========================>--] 92% 13/13 [============================] 100% - Installing composer/installers (v1.12.0): Extracting archive - Installing squizlabs/php_codesniffer (3.10.3): Extracting archive - Installing dealerdirect/phpcodesniffer-composer-installer (v0.7.2): Extracting archive - Installing composer/pcre (3.3.2): Extracting archive - Installing symfony/polyfill-php80 (v1.31.0): Extracting archive - Installing data-values/interfaces (1.2.0): Extracting archive - Installing data-values/data-values (3.1.0): Extracting archive - Installing data-values/geo (4.5.0): Extracting archive - Installing data-values/common (1.2.0): Extracting archive - Installing data-values/number (0.12.3): Extracting archive - Installing serialization/serialization (4.1.0): Extracting archive - Installing data-values/serialization (1.2.5): Extracting archive - Installing data-values/time (1.2.0): Extracting archive - Installing diff/diff (3.3.1): Extracting archive - Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive - Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive - Installing symfony/polyfill-mbstring (v1.31.0): Extracting archive - Installing composer/spdx-licenses (1.5.8): Extracting archive - Installing composer/semver (3.4.3): Extracting archive - Installing mediawiki/mediawiki-codesniffer (dev-master fd6ecb5): Extracting archive - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive - Installing symfony/polyfill-intl-normalizer (v1.31.0): Extracting archive - Installing symfony/polyfill-intl-grapheme (v1.31.0): Extracting archive - Installing symfony/polyfill-ctype (v1.31.0): Extracting archive - Installing symfony/string (v7.2.0): Extracting archive - Installing symfony/deprecation-contracts (v3.5.1): Extracting archive - Installing psr/container (2.0.2): Extracting archive - Installing symfony/service-contracts (v3.5.1): Extracting archive - Installing symfony/console (v7.2.1): Extracting archive - Installing sabre/event (5.1.7): Extracting archive - Installing netresearch/jsonmapper (v4.5.0): Extracting archive - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive - Installing webmozart/assert (1.11.0): Extracting archive - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive - Installing phpdocumentor/type-resolver (1.6.2): Extracting archive - Installing phpdocumentor/reflection-docblock (5.3.0): Extracting archive - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive - Installing psr/log (1.1.4): Extracting archive - Installing composer/xdebug-handler (3.0.5): Extracting archive - Installing phan/phan (5.4.3): Extracting archive - Installing mediawiki/phan-taint-check-plugin (6.0.0): Extracting archive - Installing mediawiki/mediawiki-phan-config (0.14.0): Extracting archive - Installing mediawiki/minus-x (1.1.3): Extracting archive - Installing monolog/monolog (2.10.0): Extracting archive - Installing onoi/message-reporter (1.4.2): Extracting archive - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive - Installing phpstan/phpstan (1.12.12): Extracting archive - Installing phpat/phpat (0.10.20): Extracting archive - Installing psr/http-message (1.1): Extracting archive - Installing psr/simple-cache (1.0.1): Extracting archive - Installing phpstan/phpdoc-parser (0.4.9): Extracting archive - Installing slevomat/coding-standard (6.4.1): Extracting archive - Installing swaggest/json-diff (v3.11.0): Extracting archive - Installing wikimedia/at-ease (v3.0.0): Extracting archive - Installing wikimedia/purtle (v2.0.0): Extracting archive - Installing wikimedia/timestamp (v4.2.0): Extracting archive 0/55 [>---------------------------] 0% 20/55 [==========>-----------------] 36% 31/55 [===============>------------] 56% 42/55 [=====================>------] 76% 53/55 [==========================>-] 96% 55/55 [============================] 100% 10 package suggestions were added by new dependencies, use `composer suggest` to see details. Generating autoload files 23 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- PHP CodeSniffer Config installed_paths set to ../../../repo,../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils,../../slevomat/coding-standard --- end --- Upgrading c:mediawiki/mediawiki-codesniffer from dev-master#fd6ecb5ffbe353507ca05387176db02f0f41f6fe -> 45.0.0 Upgrading c:mediawiki/mediawiki-phan-config from 0.14.0 -> 0.15.0 $ /usr/bin/composer update --- stderr --- Loading composer repositories with package information Updating dependencies Lock file operations: 0 installs, 4 updates, 0 removals - Downgrading mediawiki/mediawiki-codesniffer (dev-master fd6ecb5 => v45.0.0) - Upgrading mediawiki/mediawiki-phan-config (0.14.0 => 0.15.0) - Upgrading mediawiki/phan-taint-check-plugin (6.0.0 => 6.1.0) - Upgrading phan/phan (5.4.3 => 5.4.5) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 0 installs, 4 updates, 0 removals 0 [>---------------------------] 0 [->--------------------------] - Downgrading mediawiki/mediawiki-codesniffer (dev-master fd6ecb5 => v45.0.0): Extracting archive - Upgrading phan/phan (5.4.3 => 5.4.5): Extracting archive - Upgrading mediawiki/phan-taint-check-plugin (6.0.0 => 6.1.0): Extracting archive - Upgrading mediawiki/mediawiki-phan-config (0.14.0 => 0.15.0): Extracting archive 0/4 [>---------------------------] 0% 3/4 [=====================>------] 75% 4/4 [============================] 100% Generating autoload files 23 packages you are using are looking for funding. Use the `composer fund` command to find out more! No security vulnerability advisories found --- stdout --- --- end --- Previously failing phpcs rules: {'MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected', 'MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic', 'MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate', 'MediaWiki.Usage.StaticClosure.StaticClosure', 'MediaWiki.Commenting.FunctionComment.MissingParamTag'} $ vendor/bin/phpcs --report=json --- stdout --- {"totals":{"errors":494,"warnings":1186,"fixable":1137},"files":{"\/src\/repo\/view\/src\/SpecialPageLinker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/PropertyStatementIdRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/ItemStatementIdRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/DeserializedPatchRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/ItemLabelsRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyLabel\/DeserializedGetPropertyLabelRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyLabels\/GetPropertyLabelsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveItemLabel\/DeserializedRemoveItemLabelRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/DeserializedPropertyDescriptionEditRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/LabelLanguageCodeRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveItemLabel\/RemoveItemLabelValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/JsonPatcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/ValidationError.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/DeserializedEditMetadataRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/ItemDescriptionEditRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/AliasesInLanguageEditSummary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/ItemDescriptionsRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyLabel\/GetPropertyLabelRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyLabels\/GetPropertyLabels.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetLatestItemRevisionMetadata.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetSitelink\/SetSitelinkValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/DeserializedItemFieldsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetSitelink\/DeserializedSetSitelinkRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemDescriptions\/PatchItemDescriptionsResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/StatementSectionsView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/EditMetadata.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveStatement\/RemoveStatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpAliasesResult.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/StatementIdValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/DefaultMetaTagsCreator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/PropertyIdFilterValidatingDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ParserOutput\/PlaceholderExpander\/TermboxRequestInspector.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyLabels\/GetPropertyLabelsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpFingerprintResult.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/PatchItemEditSummary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/CreatePropertyEditSummary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyDescriptions\/PatchPropertyDescriptions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveItemLabel\/RemoveItemLabel.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ParserOutput\/DispatchingEntityViewFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyLabels\/GetPropertyLabelsResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Content\/DataUpdateAdapter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOp.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/maintenance\/MockAddUnits.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":44,"column":15}]},"\/src\/repo\/repo\/includes\/Hooks\/Helpers\/OutputPageEditability.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":39,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":43,"column":13}]},"\/src\/repo\/view\/src\/FingerprintableEntityMetaTagsCreator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/PropertyTermsCollisionDetectorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/BabelUserLanguageLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetSitelink\/SetSitelink.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/StatementRankSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemDescriptions\/PatchItemDescriptions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyDescriptions\/PatchPropertyDescriptionsResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/DummyChangeOpResultTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveStatement\/RemoveStatement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Localizer\/ExceptionLocalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveStatement\/DeserializedRemoveStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemStatement\/PatchItemStatement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetItemDescription\/SetItemDescriptionValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/EditSectionGenerator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/StatementReadModelConverter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/GetItemLabelsRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetItemDescription\/DeserializedSetItemDescriptionRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveItemLabel\/RemoveItemLabelRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/PropertyDescriptionsRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/SitelinkRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/PropertyAliasesInLanguageEditRequestValidatingDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/DeserializedSitelinkEditRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/StatementsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/AllTypesEntityDeserializerTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":24,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":28,"column":16}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetSitelink\/SetSitelinkResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemLabel\/DeserializedGetItemLabelRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemStatement\/PatchItemStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/Deserialization\/LabelsChangeOpDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Diff\/DifferencesSnakVisualizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Specials\/SpecialEntityData.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Diff\/EntityDiffVisualizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/PartiallyValidatedLabels.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/StatementIdRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/ItemUpdater.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyDescriptions\/PatchPropertyDescriptionsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Localizer\/DispatchingExceptionLocalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/RemovePropertyStatement\/RemovePropertyStatementTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemStatement\/DeserializedPatchItemStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/Module\/TemplateModule.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ApiHelperFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/OutputPageJsConfigBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/tests\/phpunit\/StatementGroupListViewTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":202,"column":35}]},"\/src\/repo\/repo\/config\/Wikibase.example.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":19,"column":17}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/StatementGuidParserTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/ItemLabelWithFallbackRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ChangeOpDeserializerFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Hooks\/WikibaseHandleChangesHook.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveStatement\/RemoveStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemStatement\/PatchItemStatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Specials\/SpecialItemsWithoutSitelinks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Localizer\/ChangeOpDeserializationExceptionLocalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemLabel\/GetItemLabelResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Validators\/NotMulValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetItemDescription\/SetItemDescriptionRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/SettingsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/Deserialization\/PropertyChangeOpDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyAliasesInLanguage\/DeserializedGetPropertyAliasesInLanguageRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/ReplaceStatementRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/EntityLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetPropertyDescription\/SetPropertyDescriptionResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/TypeIdsAcquirerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/PropertyPartsRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetSitelink\/SetSitelinkRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/PrefetchingTermLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ContentModelMappingsTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":38,"column":48}]},"\/src\/repo\/repo\/includes\/Hooks\/RecentChangeSaveHookHandler.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":107,"column":13}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/PropertySpecificComponentsRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyStatement\/PatchPropertyStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/PropertyLabelRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/DataAccess\/TermLookupEntityTermsRetrieverTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/CreateItem\/DeserializedCreateItemRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/AliasTermBuffer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/ChangeOpReferenceRemoveTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyStatement\/PatchPropertyStatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetItemDescription\/SetItemDescriptionResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/DefaultSnakFormatterBuildersTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/PropertyAliasesInLanguageRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/ValueTypeLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/FullStatementRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemLabel\/GetItemLabel.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Entity\/PropertyId.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/EditMetadataRequestValidatingDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/src\/Serializers\/MapSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/ItemIdRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/MediaWikiLocalizedTextProvider.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":49,"column":24}]},"\/src\/repo\/client\/maintenance\/updateSubscriptions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Localizer\/ParseExceptionLocalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyStatement\/DeserializedPatchPropertyStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyAliasesInLanguage\/GetPropertyAliasesInLanguage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/PropertyRevisionMetadataRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/StatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/maintenance\/RebuildEntityQuantityUnitTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/DataAccess\/ClientSiteLinkTitleLookupTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":34,"column":35}]},"\/src\/repo\/client\/includes\/DataAccess\/Scribunto\/WikibaseLanguageDependentLuaBindings.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemLabel\/GetItemLabelValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Specials\/SpecialPageCopyrightView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/ItemFieldsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/tests\/phpunit\/ToolbarEditSectionGeneratorTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":108,"column":35}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityChangeLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetPropertyDescription\/SetPropertyDescriptionRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/LangLinkSiteGroupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ItemTermStoreWriterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Hooks\/ArticleRevisionVisibilitySetHookHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Hooks\/ShortDescHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Localizer\/MessageExceptionLocalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/StringNormalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Hooks\/DeleteDispatcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetPropertyDescription\/SetPropertyDescriptionValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/ItemDescriptionsContentsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityTitleTextLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyStatement\/PatchPropertyStatement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/src\/Deserializers\/LegacyEntityIdDeserializer.php":{"errors":3,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":44,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":49,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":57,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/Exceptions\/EditPrevented.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemLabel\/GetItemLabelRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/CreateItem\/CreateItem.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/EntityRedirectChecker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Content\/PropertyHandler.php":{"errors":3,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":107,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":141,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":175,"column":12}]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/GetPropertyAliasesRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/integration\/includes\/DataAccess\/Scribunto\/WikibaseStatsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/DataAccess\/SnaksFinder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/ValueSnakRdfBuilderFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Interactors\/EntityRedirectCreationStatus.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/RedirectResolvingEntityLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/Deserialization\/TermChangeOpSerializationValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Localizer\/GenericExceptionLocalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ParserOutput\/GeoDataDataUpdater.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/src\/Serializers\/SnakSerializer.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":70,"column":13}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/TokenCheckInteractorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/TermInLangIdsResolverFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyAliasesInLanguage\/GetPropertyAliasesInLanguageRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyAliasesInLanguage\/GetPropertyAliasesInLanguageValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/SiteIdRequestValidatingDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/ItemLabelValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/Exceptions\/ResourceTooLargeException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/PropertyLookupException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/RepoDomainDbFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetItemDescription\/SetItemDescription.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/CreateItem\/CreateItemResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Entity\/ItemIdSet.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/TypeIdsLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/ReplaceItemStatement\/ReplaceItemStatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityRdfBuilderFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Diff\/BasicDiffView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/DataAccess\/SnaksFinderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/integration\/includes\/DataAccess\/Scribunto\/WikibaseLibraryInProcessEntityCacheTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":41,"column":17}]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/TermInLangIdsResolver.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/maintenance\/PopulateUnexpectedUnconnectedPagePageProp.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/GetItemAliasesInLanguage\/GetItemAliasesInLanguageTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/src\/Deserializers\/EntityDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/SourceAndTypeDispatchingUrlLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItem\/GetItemRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/DescriptionLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/Reference\/ReferenceFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Diff\/DiffView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/src\/Serializers\/TypedSnakSerializer.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":41,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":50,"column":13}]},"\/src\/repo\/lib\/includes\/Store\/SourceAndTypeDispatchingExistenceChecker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/Exceptions\/PatchTestConditionFailedException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/Exceptions\/RateLimitReached.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/ConvertArrayObjectsToArray.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/LinkTargetEntityIdLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/ReplaceItemStatement\/ReplaceItemStatement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/DatabaseEntitySource.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/PropertyIdValidatingDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/ItemDescriptionValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/SourceDispatchingPropertyDataTypeLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/EntityTermStoreWriter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/PropertyOrderProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AssertStatementSubjectExists.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/Deserialization\/FingerprintChangeOpDeserializer.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":43,"column":12}]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/InProcessCachingDataTypeLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyAliasesInLanguage\/GetPropertyAliasesInLanguageResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/CreateItem\/CreateItemRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/TermboxViewTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/CreateItem\/CreateItemValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetPropertyDescription\/SetPropertyDescription.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityIdComposerTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":25,"column":75}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetPropertyDescription\/DeserializedSetPropertyDescriptionRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/TermFallbackCacheTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItem\/GetItemResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/HttpUrlPropertyOrderProvider.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":42,"column":15}]},"\/src\/repo\/repo\/includes\/Rdf\/TruthyStatementRdfBuilderFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/GlobeCoordinateInlineWikitextKartographerFormatter.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":50,"column":13}]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Statement\/StatementGuidParserTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Hooks\/SkinAfterBottomScriptsHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/EntityArticleIdLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/EntityIdPlainLinkFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Statement\/Grouper\/NullStatementGrouperTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/Exceptions\/PatchPathException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/Exceptions\/TempAccountCreationLimitReached.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/ReplaceItemStatement\/ReplaceItemStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/ReplaceItemStatement\/DeserializedReplaceItemStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyDescription\/GetPropertyDescriptionValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ParserOutput\/TextInjector.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/SimpleEntityTermsView.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":102,"column":15}]},"\/src\/repo\/client\/maintenance\/populateEntityUsage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/DataAccess\/ClientSiteLinkTitleLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/BadRevisionException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/PropertyRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ParserOutput\/EntityParserOutputUpdater.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/ReferencedEntityIdLookupException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemLabels\/GetItemLabelsResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityLinkFormatterFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Entity\/ItemId.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":29,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/Exceptions\/SitelinkTargetNotFound.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/InternalFormatDeserializerFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/ItemWriteModelRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/PropertyInfoDataTypeLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Hooks\/EntityDataPurger.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/src\/Serializers\/StatementListSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/RawMessageParameter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/Deserialization\/SiteLinkBadgeChangeOpSerializationValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityDataSerializationServiceTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemLabels\/DeserializedGetItemLabelsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/src\/Deserializers\/LegacyFingerprintDeserializer.php":{"errors":4,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":48,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":58,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":68,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":80,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemLabels\/PatchItemLabelsResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Localizer\/MessageParameterFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/EntityTitleLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/src\/ChangeRow.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/maintenance\/UpdateUnitsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AssertItemExists.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/ItemLabelRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItem\/GetItem.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Formatters\/InterWikiLinkHtmlFormatterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Hooks\/BeforePageDisplayHandler.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":83,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyDescription\/GetPropertyDescriptionResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/SnakUrlExpander.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Validators\/TermValidatorFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/src\/DiffChange.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/PatchPropertyLabelsRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/PropertyDescriptionEditRequestValidatingDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/LanguageCodeRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/ByTypeDispatchingEntityRevisionLookup.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":43,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":57,"column":12}]},"\/src\/repo\/client\/includes\/DataAccess\/ReferenceFormatterFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/StatementRemover.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Diff\/EntityDiffVisualizerFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Content\/EntityContentFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/LabelsSyntaxValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/LocalizedTextProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItem\/GetItemValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItem\/DeserializedGetItemRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/RedirectResolvingLatestRevisionLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/DefaultValueFormatterBuildersTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/EntityDiffTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/CreateProperty\/CreateProperty.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/PropertyFieldsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Api\/EntityLoadingHelperTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/DisabledEntityTypesEntityLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/DataAccessServices.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/src\/Serializers\/TermListSerializer.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":40,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/PropertyLabelWithFallbackRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/EntityTypesConfigFeddyPropsAugmenterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/StorageEntitySerializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyDescription\/GetPropertyDescription.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyDescriptions\/GetPropertyDescriptionsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ChangeHolderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ParserOutput\/ImageLinksDataUpdater.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Localizer\/ChangeOpApplyExceptionLocalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemLabels\/GetItemLabels.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/PlaceholderEmittingEntityTermsViewTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/SitelinkValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/ItemDescriptionWithFallbackRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/DataAccess\/DataAccessSnakFormatterFactoryTest.php":{"errors":1,"warnings":1,"messages":[{"message":"Doc comment for parameter \"$expectedFormat\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":68,"column":5},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":77,"column":35}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyDescription\/DeserializedGetPropertyDescriptionRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/FullStatementRdfBuilderFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/DifferenceContentLanguages.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ParserOutput\/EntityParserOutputGenerator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Entity\/SerializableEntityId.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":28,"column":20}]},"\/src\/repo\/view\/tests\/phpunit\/ViewFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemLabels\/GetItemLabelsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Diff\/EntitySlotDiffRenderer.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":29,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":43,"column":12}]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/ReferencedEntityIdLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/CopyrightMessageBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemovePropertyDescription\/RemovePropertyDescriptionRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/PropertyUpdater.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/maintenance\/RemoveTermsInLanguageTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/CacheRetrievingEntityRevisionLookup.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":104,"column":32},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":108,"column":80}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Hooks\/PageHistoryPagerHookHandlerTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":108,"column":43},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":113,"column":33}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityRevisionLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/ValueSnakRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/LanguageFallbackLabelDescriptionLookupTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":102,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":111,"column":35}]},"\/src\/repo\/lib\/includes\/Formatters\/DispatchingValueFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/EntityArticleIdNullLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Api\/EntityTermsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/SiteLinkPageNormalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/EntityDifferTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":29,"column":78},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":35,"column":78}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/RdfVocabularyTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemLabels\/PatchItemLabelsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/PropertyLabelValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemLabels\/GetItemLabelsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/WikibaseClient.i18n.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/ItemStatementsRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/ExampleSettings.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/PrefetchingEntityStubRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Formatters\/UnknownTypeEntityIdHtmlLinkFormatterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemovePropertyDescription\/DeserializedRemovePropertyDescriptionRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemovePropertyDescription\/RemovePropertyDescriptionValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyDescription\/GetPropertyDescriptionRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Localizer\/ChangeOpValidationExceptionLocalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyDescriptions\/GetPropertyDescriptions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/src\/ItemChange.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":52,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/PartiallyValidatedDescriptions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/TextInjectorTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":48,"column":45}]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/LegacyIdInterpreter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/LegacyAdapterItemLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/DataAccess\/EntityUpdaterItemUpdaterTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":69,"column":35}]},"\/src\/repo\/lib\/includes\/Store\/RevisionBasedEntityRedirectTargetLookup.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":23,"column":23},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":34,"column":27}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntitySourceLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/HookRunnerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/ItemCreator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/NoBadUsageTestBase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/PatchItemStatementRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/Deserialization\/ClaimsChangeOpDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyDescriptions\/DeserializedGetPropertyDescriptionsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EnabledEntityTypesForSearchTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityViewFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/PropertyDescriptionValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/ItemAliasesInLanguageEditRequestValidatingDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Normalization\/CommonsMediaValueNormalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/ItemOrderProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/PropertyAliasesRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Statement\/Grouper\/FilteringStatementGrouperTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/EntityIdLabelFormatterFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Specials\/SpecialSetSiteLinkTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/EntityRevisionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyDescriptions\/GetPropertyDescriptionsResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Formatters\/NonExistingEntityIdHtmlFormatterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/Utils.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/DataAccess\/StatementTransclusionInteractor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/LookupConstants.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/EntityRedirectLookupException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/ItemRevisionMetadataRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/FulltextSearchTypesTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":19,"column":54},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":46,"column":26}]},"\/src\/repo\/lib\/includes\/Formatters\/EntityIdSiteLinkFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/Deserialization\/ChangeOpDeserializationException.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":34,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":38,"column":12}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityDiffVisualizerFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/src\/Serializers\/ItemSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/ToolbarEditSectionGenerator.php":{"errors":4,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":56,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":105,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":148,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":156,"column":12}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/ItemLabelEditRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/RemovePropertyLabel\/RemovePropertyLabelTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityTitleStoreLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/src\/Deserializers\/LegacyItemDeserializer.php":{"errors":4,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":129,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":135,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":146,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":158,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItem\/PatchItemRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Serializer\/ClientEntitySerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/EditMetadataValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/SitelinkTargetTitleResolver.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/LocalEntityNamespaceLookupTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":30,"column":28}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemAliases\/PatchItemAliasesRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Api\/PermissionsTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/AnonymousEditWarningBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyDescriptions\/GetPropertyDescriptionsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/ItemIdRequestValidatingDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Statement\/Grouper\/ByPropertyIdStatementGrouperTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/PropertyCreator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemAliases\/DeserializedPatchItemAliasesRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/BaseDataModelSerializerFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemovePropertyDescription\/RemovePropertyDescription.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Specials\/SpecialNewProperty.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/DataAccess\/Scribunto\/SnakSerializationRendererTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":47,"column":35}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/AliasLanguageCodeRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/MessageInLanguageProviderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/GetItemAliasesRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/DatabaseInnerTermStoreCleaner.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetItemLabel\/SetItemLabelValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/KartographerEmbeddingHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItem\/PatchItemResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Hooks\/UpdateRepoHookHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/src\/RepoRevisionIdentifier.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ParserOutput\/TermboxView.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":57,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":67,"column":12}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/JsonPatchValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/DescriptionLanguageCodeValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiringTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/TitleLookupBasedEntityArticleIdLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Modules\/SitesModuleTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":33,"column":35}]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Reference.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/MobileSiteTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/TypeDispatchingEntityStore.php":{"errors":1,"warnings":0,"messages":[{"message":"Doc comment for parameter \"$tags\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":93,"column":5}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/PropertyDescriptionEditRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/DeserializedPropertyAliasesInLanguageEditRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/PropertyStatementsRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddItemStatement\/DeserializedAddItemStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/tests\/phpunit\/PropertyViewTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/SnakFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Serializer\/ClientStatementListSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/EntitySourceDefinitionsConfigParser.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":99,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":129,"column":20}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemLabels\/PatchedItemLabelsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/RdfBuilderTestData.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":343,"column":12}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/ItemSerializationRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/DeserializedStatementSerializationRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Formatters\/VocabularyUriFormatterTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":43,"column":35}]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/PermissionChecker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/src\/Deserializers\/LegacyEntityDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ExternalFormatStatementDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/PrefetchingPropertyTermLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Interactors\/ItemMergeInteractor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Diff\/DiffOpValueFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/tests\/phpunit\/ViewContentTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemLabels\/PatchItemLabelsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/TermListPatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/ItemSourceTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/StatementRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/TypeIdsAcquirer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddItemStatement\/AddItemStatementResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/RepoNoBadUsageTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Statement\/GuidGeneratorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Modules\/MediaWikiConfigModuleTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityNamespaceLookupTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":25,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemLabels\/DeserializedPatchItemLabelsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/InMemoryEntityLookup.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":107,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":111,"column":12}]},"\/src\/repo\/lib\/includes\/Store\/RedirectRevision.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/StatementWriteModelRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/GlobeCoordinateKartographerDataUpdaterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/FallbackLabelDescriptionLookupFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetItemLabel\/SetItemLabelRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ParserOutput\/ExternalLinksDataUpdater.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/src\/Serializers\/PropertySerializer.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":76,"column":13}]},"\/src\/repo\/client\/tests\/phpunit\/integration\/includes\/DataAccess\/Scribunto\/WikibaseEntityLibraryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Hooks\/DeleteDispatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/RangeTraversableTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Hooks\/ShowSearchHitHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/CachingSiteLinkLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Specials\/SpecialWikibasePage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/StatementSubjectRevisionMetaDataRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/FallbackLabelDescriptionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/bootstrap.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemAliases\/PatchedItemAliasesValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/WikibaseClient.i18n.magic.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Serializer\/ClientSerializer.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":53,"column":13}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/TermsCollisionDetectorFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/SnakFormatterFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/PropertyDifferTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/Deserialization\/ChangeOpDeserializerFactory.php":{"errors":6,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":123,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":132,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":140,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":148,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":156,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":163,"column":12}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/TruthyStatementRdfBuilderFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/PatchRequestValidatingDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/SitelinksRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/SourceAndTypeDispatchingArticleIdLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemAliases\/PatchItemAliasesValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/SiteLink.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/PropertyIdProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/SiteLinkStore.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetItemLabel\/SetItemLabelResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/src\/Deserializers\/LegacyPropertyDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/tests\/unit\/Snak\/SnakListTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/PropertyAliasesInLanguageEditRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/QuantityDetailsFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/SitelinksValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/CachedDatabasePropertyLabelResolver.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/PropertyDataTypeLookupException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/StatementUpdater.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityIdParserTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":31,"column":65},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":55,"column":61}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddItemStatement\/AddItemStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/RepoLinker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityPermissionCheckerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItem\/PatchItem.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/LinkTargetEntityIdLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Snak\/PropertyNoValueSnak.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/ChangeOpStatementTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/DeserializedPropertyIdFilterRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/EntityTypeAwareDiffOpFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Formatters\/WikibaseSnakFormatterBuildersTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Services\/ItemAliasesInLanguageRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/EntityAccessLimitException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddItemStatement\/AddItemStatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/DataAccess\/FallbackLookupFactoryTermsRetrieverTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemAliases\/PatchItemAliasesResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityStubRdfBuilderFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/PatchPropertyDescriptions\/PatchedPropertyDescriptionsValidatorTest.php":{"errors":1,"warnings":0,"messages":[{"message":"Doc comment for parameter \"$expectedError\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":57,"column":5}]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/SetItemLabelRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Specials\/ParameterizedDescriptionTrait.php":{"errors":1,"warnings":1,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":45,"column":13},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":55,"column":21}]},"\/src\/repo\/repo\/includes\/ChangeOp\/Deserialization\/ItemChangeOpDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItem\/PatchItemValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/ItemLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/ItemAndPropertySourceTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/CachingPropertyOrderProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/SnakFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItem\/DeserializedPatchItemRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Api\/ApiQueryWithContinueTrait.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/PropertyLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/LanguageNameLookupFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemLabels\/PatchItemLabels.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Diff\/EntityContentDiffView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/TypedValueFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/PropertyInfoLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/GetItemLabelWithFallbackRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/CreateProperty\/CreatePropertyValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Hooks\/OtherProjectsSidebarGeneratorTest.php":{"errors":2,"warnings":0,"messages":[{"message":"Doc comment for parameter \"$expectedMethod\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":144,"column":5},{"message":"Doc comment for parameter \"$expectedArgument\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":144,"column":5}]},"\/src\/repo\/repo\/includes\/SummaryFormatter.php":{"errors":1,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":136,"column":17},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":228,"column":13}]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/TermInLangIdsResolverFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/DataTypeDefinitionsTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":45,"column":36}]},"\/src\/repo\/lib\/tests\/phpunit\/ServiceByTypeDispatcherTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":30,"column":16}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/PropertyHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/ChangeOpRemoveSiteLinkTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/src\/EntityDiffChangedAspectsFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetItemLabel\/SetItemLabel.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/StatementEditSummary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/DivergingEntityIdException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Hooks\/SidebarBeforeOutputHookHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ItemDisambiguationTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/DataValue\/ValuesFinderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Hooks\/SummaryParsingPrefetchHelperTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":64,"column":36}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/CachingCommonsMediaFileNameLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ReferenceNormalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/ValueDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/EntityTitleTextLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/Deserialization\/DescriptionsChangeOpDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/src\/ChangeStore.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":16,"column":12}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/CreateProperty\/CreatePropertyResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetItemLabel\/DeserializedSetItemLabelRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/EntitySourceDefinitions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/TermsCollisionDetectorFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/MessageInLanguageProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/EntityIdComposerTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":25,"column":75}]},"\/src\/repo\/lib\/includes\/LanguageFallbackChainFactory.php":{"errors":2,"warnings":1,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":259,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":285,"column":13},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":290,"column":13}]},"\/src\/repo\/repo\/includes\/Diff\/DispatchingEntityDiffVisualizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/InMemoryDataTypeLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Formatters\/EntityIdPlainLinkFormatterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/MonolingualTextLanguagesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/SnakFormat.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Hooks\/ParserHookHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/CachingEntityRevisionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/src\/RepoRevisionIdentifierFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/AliasesEditSummary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/tests\/unit\/Snak\/SnakTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/src\/Deserializers\/LegacySiteLinkListDeserializer.php":{"errors":3,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":31,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":42,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":48,"column":13}]},"\/src\/repo\/lib\/tests\/phpunit\/StaticContentLanguagesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddItemStatement\/AddItemStatement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/AliasesValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/CacheInvalidArgumentException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityIdLabelFormatterFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/DataValueDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/CreateProperty\/DeserializedCreatePropertyRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/EntityStoreWatcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/src\/SerializerFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/integration\/includes\/DataAccess\/Scribunto\/WikibaseLibraryTestCase.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":151,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":171,"column":17}]},"\/src\/repo\/lib\/includes\/UserLanguageLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Hooks\/OutputPageEntityIdReader.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveItemDescription\/DeserializedRemoveItemDescriptionRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveItemDescription\/RemoveItemDescriptionValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Api\/ModifyTermTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/UnresolvedEntityRedirectException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/CompositeSiteLinkConflictLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Snak\/SnakObject.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemAliases\/PatchItemAliases.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/SitelinksEditSummary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/src\/Change.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/HtmlUrlFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/includes\/Hooks\/EntityDataPurgerTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":139,"column":35}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/PropertyPartsSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityTypeDefinitionsTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":31,"column":44}]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/RepoLinkerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/ViewFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/LabelDescriptionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/CacheableEntityTermsView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/PropertyLabelsContentsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/AliasLanguageCodeValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/tests\/phpunit\/SiteLinksViewTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":209,"column":35}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityChangeOpProviderTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":31,"column":78}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityPatcherTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":29,"column":79},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":35,"column":79}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/CreateProperty\/CreatePropertyRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/DifferenceContentLanguagesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/ItemRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Specials\/SpecialSetLabel.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Snak\/TypedSnak.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/PropertyPatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetLatestStatementSubjectRevisionMetadata.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ParserOutput\/EntityParserOutputGeneratorFactory.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":265,"column":13}]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/Deserializers\/PropertyDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Api\/EntitySavingHelper.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":104,"column":12}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetProperty\/GetPropertyValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/TypeDispatchingEntityTitleStoreLookup.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":64,"column":13}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/LocalizedTextProviderFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Api\/ApiFormatReference.php":{"errors":3,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":46,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":94,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":117,"column":15}]},"\/src\/repo\/lib\/includes\/Store\/EntityTermLookupBase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ParserOutput\/ParserOutputJsConfigBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/DataValueFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/ItemLookupException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/FullEntityParserOutputGeneratorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/includes\/ItemDisambiguationFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/PropertyStubRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/DatabaseTermStoreWriterBase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/SitelinkEditSummary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/PropertyValuePairSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/src\/DeserializerFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/bootstrap.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Diff\/ClaimDifference.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveItemDescription\/RemoveItemDescriptionRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemStatements\/GetItemStatements.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Interactors\/EntityRedirectCreationInteractor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/LocalEntitySourceTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/EntityRedirectLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/TypeIdsResolver.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/SubEntityTypesMapperTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/SiteLinkConflictLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/NullEntityTermStoreWriter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Hooks\/NoLangLinkHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetProperty\/GetPropertyResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/MultipleEntitySourceServices.php":{"errors":5,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":53,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":68,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":83,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":91,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":102,"column":12}]},"\/src\/repo\/view\/tests\/phpunit\/Template\/TemplateFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/LabelLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/PrefetchingItemTermLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/EditSummary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/IdGenerator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/ReferenceSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Interactors\/ItemMergeException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Hooks\/SummaryParsingPrefetchHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Interactors\/RedirectCreationInteractorTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":75,"column":35}]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/EntityPatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/integration\/includes\/DataAccess\/Scribunto\/WikitextPreprocessingSnakFormatterTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":60,"column":13}]},"\/src\/repo\/client\/includes\/ClientHooks.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":243,"column":13}]},"\/src\/repo\/repo\/includes\/Rdf\/EntityStubRdfBuilderFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/PatchItemDescriptionsRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/EntityRedirectTargetLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/BuilderBasedDataTypeValidatorFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/ItemsWithoutSitelinksFinder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/PatchProperty\/PatchedPropertyValidatorTest.php":{"errors":0,"warnings":4,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":367,"column":32},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":371,"column":34},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":479,"column":32},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":483,"column":34}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetProperty\/GetProperty.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/FullStatementRdfBuilderFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/CommonsInlineImageFormatter.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":119,"column":13}]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/DataAccess\/EntityUpdaterIntegrationTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/tests\/phpunit\/Template\/TemplateTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/DataAccess\/Scribunto\/CachingFallbackBasedTermLookupTest.php":{"errors":0,"warnings":3,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":169,"column":37},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":174,"column":43},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":295,"column":35}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/WikibaseContentLanguagesTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":22,"column":45}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/includes\/Specials\/SpecialListPropertiesDispatchingFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Interactors\/ItemRedirectCreationInteractor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/NullTermsCollisionDetector.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/ExternalUserNamesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/SitelinksSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/AllTypesEntitySerializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Hooks\/LangLinkHandlerFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/integration\/includes\/DataAccess\/Scribunto\/WikibaseLibraryNoLinkedEntityTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/ItemValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemStatements\/GetItemStatementsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/LanguageWithConversionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/NullPrefetchingTermLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/FingerprintableEntityTermStoreTrait.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/SubscriptionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/LabelEditSummary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/OutputFormatSnakFormatterFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/UnknownFlavorException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/EntityStubRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/ItemSerializationRequestValidatingDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveItemDescription\/RemoveItemDescription.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/StatementGroupListView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetProperty\/GetPropertyRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Snak\/PropertyValueSnak.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/Deserializers\/AliasGroupListDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/SiteLinkTargetProviderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/AliasesInLanguageDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Formatters\/OutputFormatValueFormatterFactoryTest.php":{"errors":0,"warnings":3,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":64,"column":28},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":67,"column":25},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":171,"column":13}]},"\/src\/repo\/lib\/tests\/phpunit\/GlobalStateFactoryMethodsResourceTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/HtmlTermRenderer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetProperty\/DeserializedGetPropertyRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/SiteIdValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/SetPropertyLabel\/SetPropertyLabelRequestTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemStatements\/GetItemStatementsResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemStatements\/DeserializedGetItemStatementsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/LanguageFallbackLabelDescriptionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/UserLanguageTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/PatchSitelinksRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/NumberLocalizerFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/MobileSiteTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/LanguageLabelDescriptionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Interactors\/ItemMergeStatus.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/tests\/unit\/Snak\/DerivedPropertyValueSnakTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Interactors\/TokenCheckInteractorTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":30,"column":17}]},"\/src\/repo\/lib\/includes\/Formatters\/EntityIdValueFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/FieldsFilterValidatingDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyStatement\/DeserializedGetPropertyStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Sites\/SiteMatrixParser.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Snak\/Snak.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/tests\/phpunit\/Template\/TemplateRegistryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/DataAccess\/Scribunto\/LuaFunctionCallTrackerTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":66,"column":35}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/LanguageCodeValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/TitleLookupBasedEntityArticleIdLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntitySourceDefinitionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/tests\/EntityDiffChangedAspectsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemStatements\/GetItemStatementsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/DescriptionsEditSummary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/InMemoryTypeIdsStore.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/unit\/Deserializers\/LegacySiteLinkListDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/RdfBuilderFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/DeserializedStatementIdRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Diff\/BasicEntityDiffVisualizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/OtherProjectsSitesGenerator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ExceptionLocalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/ByTypeDispatchingEntityPrefetcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/ReferencedEntitiesDataUpdaterTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":83,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":90,"column":47}]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/CreateItemEditSummary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/UnknownForeignRepositoryException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/WbRestApi.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Interactors\/TokenCheckException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemDescriptionWithFallback\/GetItemDescriptionWithFallback.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/tests\/unit\/Snak\/TypedSnakTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Hooks\/LabelPrefetchHookHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/TypeDispatchingEntityStoreTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":62,"column":31}]},"\/src\/repo\/lib\/includes\/Store\/TitleLookupBasedEntityRedirectChecker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityDataFormatProviderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/Deserialization\/SiteLinksChangeOpDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/EntityLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Api\/SetDescriptionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemDescriptionWithFallback\/GetItemDescriptionWithFallbackRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/includes\/SiteLinkPageNormalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/PatchPropertyDescriptions\/PatchPropertyDescriptionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/MediaWiki\/EntitySourceDocumentUrlProvider.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":20,"column":12}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/ChangeOpQualifierTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/EntityRdfBuilderFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyStatement\/GetPropertyStatement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/Store.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/EntityIdParserTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":21,"column":16}]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/SuggestEntitiesRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/Deserializers\/TermListDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Api\/ApiPropsEntityUsage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/ItemRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyStatement\/GetPropertyStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/UnionContentLanguagesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/DispatchingSnakFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityArticleIdLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/WikibaseServices.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Interactors\/TokenCheckInteractor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/ShowCalendarModelDecider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemDescriptionWithFallback\/GetItemDescriptionWithFallbackValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/EntityRevisionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/ValueValidatorLanguageCodeValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/PatchPropertyEditSummary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/SitelinkEditRequestValidatingDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Formatters\/GlobeCoordinateDetailsFormatterTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":29,"column":35}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyStatement\/GetPropertyStatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/UseCaseException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/TermFallbackCacheFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/tests\/phpunit\/DummyLocalizedTextProviderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/EntityContentDataCodec.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/Serializer\/ForbiddenSerializer.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":21,"column":12}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/UpdateRepo\/UpdateRepoOnMoveJobTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Specials\/SpecialItemByTitle.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":245,"column":34}]},"\/src\/repo\/lib\/includes\/Sites\/SitesBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Lookup\/RestrictedEntityLookupFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/StatementDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/DescriptionsSyntaxValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemDescriptionWithFallback\/GetItemDescriptionWithFallbackResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/TermValidatorFactoryItemLabelValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Interactors\/RedirectCreationException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/SnakHtmlGenerator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/InMemoryTermStore.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/CommonsThumbnailFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/EntityPermissionChecker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/tests\/ItemChangeTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":36,"column":13},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":41,"column":29}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/MappedRequestValidatingDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/ItemAliasesInLanguageEditRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Term\/PropertyTermStoreWriter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/UnDeserializableValueFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/MessageParameterFormatterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/PropertyIdValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemDescriptionWithFallback\/DeserializedGetItemDescriptionWithFallbackRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ItemHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/DataTypeValidatorFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/LangLinkHandlerFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/DescriptionEditSummary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/UseCaseError.php":{"errors":0,"warnings":27,"messages":[{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":80,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":81,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":82,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":83,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":84,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":85,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":86,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":87,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":88,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":93,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":94,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":95,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":96,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":97,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":98,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":99,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":100,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":101,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":102,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":103,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":104,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":105,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":106,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":107,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":108,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":113,"column":9},{"message":"Found duplicate key \"self\" on array required sorting","source":"MediaWiki.Arrays.AlphabeticArraySort.Duplicate","severity":5,"fixable":false,"type":"WARNING","line":114,"column":9}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/AliasesSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/PatchRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/DeserializedLanguageCodeRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Term\/ItemTermStoreWriter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Search\/Fields\/WikibaseNumericField.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/ChangeOpResultTraversalTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/Values\/ExternalIdentifierRdfBuilderTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":42,"column":35}]},"\/src\/repo\/repo\/includes\/Store\/RateLimitingIdGenerator.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":32,"column":12}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/PropertyDataTypeLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyDescriptionWithFallback\/DeserializedGetPropertyDescriptionWithFallbackRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/EntityFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/unit\/Deserializers\/LegacyFingerprintDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchProperty\/PatchPropertyRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/ItemLabelsContentsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/tests\/phpunit\/FingerprintableEntityMetaTagsCreatorTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":23,"column":49},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":26,"column":39}]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/Deserializers\/StatementListDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Search\/Fields\/NoFieldDefinitions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyLabels\/PatchedPropertyLabelsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Hooks\/RecentChangeSaveHookHandlerTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":55,"column":73},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":311,"column":35}]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/PropertyInfoLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/FallbackLabelDescriptionLookupFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Term\/TermBuffer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Term\/TermStoreException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Api\/ApiClientInfo.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/integration\/includes\/DataAccess\/WikibaseDataAccessTestItemSetUpHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/DefaultSnakFormatterBuildersTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/LabelsDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/Deserialization\/AliasesChangeOpDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/EntitySourceAndTypeDefinitions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/TypeDispatchingEntityRevisionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/tests\/phpunit\/RawMessageParameterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Search\/Fields\/WikibaseIndexField.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyDescriptionWithFallback\/GetPropertyDescriptionWithFallbackRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/DataTypeFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/LabelsEditSummary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Term\/PropertyLabelResolver.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/PropertyStatementIdRequestValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/Exceptions\/EmptyLabelException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/StringNormalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/SourceAndTypeDispatchingPrefetchingTermLookup.php":{"errors":4,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":57,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":64,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":68,"column":15},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":79,"column":12}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyLabels\/PatchPropertyLabelsResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/AliasesInLanguageValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/LabelLanguageCodeValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Search\/Fields\/FieldDefinitions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/ThrowingEntityTermStoreWriter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntitySearchHelperCallbacksTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":40,"column":39}]},"\/src\/repo\/lib\/includes\/Store\/PropertyInfoLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/DataAccessSettingsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Api\/MergeItemsTest.php":{"errors":0,"warnings":4,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":97,"column":21},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":121,"column":39},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":139,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":212,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyDescriptionWithFallback\/GetPropertyDescriptionWithFallbackValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveSitelink\/RemoveSitelink.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/EntitySource.php":{"errors":7,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":15,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":17,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":19,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":21,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":23,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":25,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":27,"column":12}]},"\/src\/repo\/repo\/includes\/ChangeOp\/NullChangeOp.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/BinaryOptionDispatchingSnakFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/tests\/unit\/Snak\/PropertySomeValueSnakTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/RemoveItemDescriptionRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/UserProvidedEditMetadata.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/Exceptions\/PropertyIdMismatchException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/ItemStatementIdRequestValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Entity\/PropertyDataTypeMatcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/UnionContentLanguages.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/LegacyFormatDetectorCallbackTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/Values\/CommonsMediaRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/RepoItemLinkGenerator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/unit\/Deserializers\/LegacyEntityDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/PropertyInfoSnakUrlExpanderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntitySourceAndTypeDefinitionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Search\/Fields\/FieldDefinitionsFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/EntityChangeOpProviderTest.php":{"errors":0,"warnings":4,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":25,"column":24},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":52,"column":30},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":64,"column":30},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":78,"column":30}]},"\/src\/repo\/lib\/includes\/Store\/PropertyInfoStore.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Hooks\/InfoActionHookHandlerTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":186,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":268,"column":35}]},"\/src\/repo\/lib\/includes\/Store\/DispatchingFallbackLabelDescriptionLookup.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":48,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":52,"column":12}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/Exceptions\/EmptySitelinkException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/DeserializedItemDescriptionEditRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Entity\/NullEntityPrefetcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/DeserializedSiteIdRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/DataValueDeserializerTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":36,"column":31}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyDescriptionWithFallback\/GetPropertyDescriptionWithFallback.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/TermValidatorFactoryPropertyDescriptionValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/EntityArticleIdNullLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Search\/ExtendedResult.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Validation\/PropertyDescriptionsContentsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiringTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/GetItemDescriptionWithFallbackRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveSitelink\/RemoveSitelinkRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/Values\/MonolingualTextRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/SiteLinkBadgeChangeOpSerializationValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/SetPropertyLabel\/SetPropertyLabelTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Snak\/SnakList.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/TypeDispatchingWikiPageEntityMetaDataAccessor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/StatementListPatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ItemSearchTextGenerator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/GetPropertyDataTypesHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/Model\/User.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Entity\/EntityPrefetcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Hooks\/WikibaseClientHookRunnerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyDescriptionWithFallback\/GetPropertyDescriptionWithFallbackResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyLabels\/PatchPropertyLabelsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveSitelink\/DeserializedRemoveSitelinkRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataValuesValueDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/Exceptions\/InvalidFieldException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Snak\/PropertySomeValueSnak.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/LanguageCodeRequestValidatingDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/GlobeCoordinateKartographerFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchProperty\/PatchProperty.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveSitelink\/RemoveSitelinkValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyLabels\/PatchPropertyLabelsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Snak\/SnakRole.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/Exceptions\/SerializationException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/Exceptions\/EmptyDescriptionException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/tests\/phpunit\/StatementSectionsViewTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/EditMetadataRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityDataUriManagerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/WikibaseContentLanguagesTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":24,"column":45}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyAliases\/GetPropertyAliasesResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/ItemRedirect.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchProperty\/PatchPropertyValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpRemoveStatement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchJson.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyLabels\/DeserializedPatchPropertyLabelsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/ItemView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/DeserializedPropertyLabelEditRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/SingleEntitySourceServicesFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/BagOStuffSiteLinkConflictLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItem\/PatchedItemValidator.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":289,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchStatement\/PatchStatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/UpdateRepo\/UpdateRepoOnDeleteJobTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/integration\/includes\/NamespaceCheckerTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":93,"column":23},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":97,"column":37}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ChangeOpFactoryProviderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/EntityRevisionCache.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/DataTypeFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/PropertyLabelEditRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/UseCaseRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/SetPropertyDescription\/SetPropertyDescriptionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/EntityNamespaceLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ItemTermsCollisionDetectorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/Exceptions\/MissingFieldException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyAliases\/GetPropertyAliases.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/Values\/TabularDataRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/LanguageBoundChangeOpResult.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchStatement\/DeserializedPatchStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchProperty\/PatchPropertyResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EnabledEntityTypesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetSitelink\/GetSitelinkResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/build\/phpstan-bootstrap.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Snak\/DerivedPropertyValueSnak.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/LanguageDirectionalityLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Api\/SearchEntities.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Api\/Description.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/ItemOrderProviderException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/Exceptions\/BadgeNotAllowed.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/ByPropertyIdGrouper.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":36,"column":13}]},"\/src\/repo\/lib\/tests\/phpunit\/Formatters\/CachingKartographerEmbeddingHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Specials\/SpecialGoToLinkedPage.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":260,"column":34}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetSitelink\/DeserializedGetSitelinkRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/WikibaseSnakFormatterBuilders.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/Exceptions\/InvalidLabelException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/Exceptions\/InvalidDescriptionException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/EntityUrlLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyAliases\/GetPropertyAliasesRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Notifications\/PageConnectionPresentationModel.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyAliases\/DeserializedGetPropertyAliasesRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/ParserOutputDataUpdaterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetStatement\/GetStatement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/FingerprintSearchTextGeneratorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/unit\/Deserializers\/LegacySnakDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Diff\/ClaimDifferenceVisualizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/StatementIdRequestValidatingDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/Values\/ObjectUriRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/SiteIdRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/StatementNormalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyAliases\/GetPropertyAliasesValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/ItemTermStoreWriterAdapter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/ServiceByTypeDispatcher.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":62,"column":13}]},"\/src\/repo\/repo\/includes\/IO\/EntityIdReader.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/tests\/EntityChangeFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/TermValidatorFactoryItemLabelValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetSitelink\/GetSitelinkRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/PropertyIdFilterRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/DescriptionLanguageCodeRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/Deserializers\/ItemDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Statement\/Filter\/DataTypeStatementFilter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/InconsistentRedirectException.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":19,"column":12}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetStatement\/GetStatementResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/MediaWikiMessageInLanguageProvider.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":14,"column":12}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/CopyrightMessageBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ChangeNotifierTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataTypeFactoryValueTypeLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Statement\/StatementGuid.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/Exceptions\/InvalidFieldTypeException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/StatementSerializationRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/StatementListDifferTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Statement\/Filter\/NullStatementFilter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemDescription\/GetItemDescriptionResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/PageTableEntityQueryBase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/TitleLookupBasedEntityExistenceChecker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyLabels\/PatchPropertyLabels.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/FallbackPropertyOrderProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/UserLanguageTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityTitleLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/LibNoBadUsageTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Statement\/StatementFilter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Statement\/StatementListProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EditEntityFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/GetSitelinks\/GetSitelinksTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetStatement\/GetStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemAliases\/GetItemAliasesValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/UnitConverterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetStatement\/DeserializedGetStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemAliases\/DeserializedGetItemAliasesRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/DefaultRepoSettingsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/Exceptions\/PropertyNotFoundException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/WikibaseLib.datatypes.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchStatement\/PatchStatement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Statement\/Filter\/PropertySetStatementFilter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetSitelink\/GetSitelink.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetStatement\/GetStatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Api\/EntityTermSearchHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/tests\/unit\/Statement\/StatementByGuidMapTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Api\/SetQualifierTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/DataTypeFactoryTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":27,"column":28}]},"\/src\/repo\/repo\/includes\/Store\/ItemTermsRebuilder.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":90,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/Exceptions\/InvalidSitelinkBadgeException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/DataValuesValueDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/config\/WikibaseLib.default.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/EntityChangeSelectQueryBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemAliases\/GetItemAliasesResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/StringValueNormalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/Deserializers\/DispatchableDeserializerTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetSitelink\/GetSitelinkValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/SiteLinkLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Api\/EntitySearchHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/SiteLinkGlobalIdentifiersProviderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemDescription\/GetItemDescription.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/GeoDataDataUpdaterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/TermValidatorFactoryAliasesInLanguageValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Statement\/V4GuidGenerator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/Wikibase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/ReplaceStatement\/ReplaceStatementResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Hooks\/HtmlPageLinkRendererEndHookHandler.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":348,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemovePropertyStatement\/RemovePropertyStatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpSiteLink.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ValueSnakRdfBuilderFactoryTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":25,"column":55}]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/DataTypeFactoryValueTypeLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/DescriptionsSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/ReplaceItemStatementRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/DataAccessSettingsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/Sql\/Terms\/DatabaseInnerTermStoreCleanerTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":265,"column":17}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/ReplaceStatement\/DeserializedReplaceStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemAliases\/GetItemAliasesRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/unit\/Deserializers\/LegacyEntityIdDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/FieldDefinitionsFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/Wikibase.i18n.namespaces.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ItemUrlParserTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemDescription\/GetItemDescriptionRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchStatement\/PatchedStatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Statement\/StatementGuidParser.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/SummaryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemDescription\/DeserializedGetItemDescriptionRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/TermIndexSearchCriteria.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/DataTypeDefinitions.php":{"errors":1,"warnings":1,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":151,"column":12},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":387,"column":13}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/TypeIdsLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemovePropertyStatement\/RemovePropertyStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Diff\/ClaimDiffer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/IO\/LineReader.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/PatchStatementRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Statement\/StatementGuidParsingException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemDescription\/GetItemDescriptionValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemAliases\/GetItemAliases.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/ParserFunctions\/CommaSeparatedList.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ValueFormatterFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ItemSearchTextGeneratorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/docs\/namespaces.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemovePropertyStatement\/DeserializedRemovePropertyStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/StatementSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/Deserializers\/TermDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchStatement\/PatchStatementResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemDescriptions\/GetItemDescriptionsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/DataTypeDefinitionsTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":39,"column":42}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/Values\/GlobeCoordinateRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/DataTypeDefinitionsTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":38,"column":44}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/TypeIdsResolverTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/unit\/Deserializers\/StatementDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/ReplaceStatement\/ReplaceStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Statement\/GuidGenerator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/tests\/unit\/Statement\/StatementGuidTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/WikiPageEntityDataLoader.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":33,"column":12}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemDescriptions\/GetItemDescriptionsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/RedirectResolvingLatestRevisionLookup.php":{"errors":0,"warnings":3,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":37,"column":23},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":42,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":50,"column":43}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyStatements\/GetPropertyStatementsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Specials\/SpecialNewEntity.php":{"errors":1,"warnings":0,"messages":[{"message":"Doc comment for parameter \"$isMobileView\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":40,"column":5}]},"\/src\/repo\/repo\/includes\/Hooks\/DifferenceEngineViewHeaderHookHandler.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":72,"column":12}]},"\/src\/repo\/repo\/includes\/Rdf\/RdfBuilder.php":{"errors":0,"warnings":3,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":350,"column":17},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":354,"column":17},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":358,"column":17}]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/RemovePropertyDescription\/RemovePropertyDescriptionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/TermsListView.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":189,"column":13}]},"\/src\/repo\/lib\/includes\/Store\/AbstractTermPropertyLabelResolver.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Statement\/Grouper\/NullStatementGrouper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemovePropertyStatement\/RemovePropertyStatement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityConstraintProviderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/EntityUpdaterPropertyUpdater.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/FederatedProperties\/ApiEntityTitleTextLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/InternalFormatEntityDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpQualifierRemove.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchStatement\/PatchStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/integration\/includes\/Api\/ApiPropsEntityUsageTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemDescriptions\/GetItemDescriptionsResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/.phan\/config.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyStatements\/GetPropertyStatementsResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/PlaceholderExpander\/EntityViewPlaceholderExpanderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/SingleEntitySourceServices.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":299,"column":12}]},"\/src\/repo\/view\/src\/EntityTermsView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Hooks\/HtmlPageLinkRendererEndHookHandlerTestBase.php":{"errors":0,"warnings":5,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":128,"column":23},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":131,"column":27},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":182,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":201,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":237,"column":35}]},"\/src\/repo\/client\/includes\/Specials\/SpecialPagesWithBadges.php":{"errors":2,"warnings":1,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":90,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":144,"column":13},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":147,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/ReferenceDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Statement\/Grouper\/ByPropertyIdStatementGrouper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/OtherProjectsSitesProviderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemDescriptions\/DeserializedGetItemDescriptionsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyStatements\/DeserializedGetPropertyStatementsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/DataValueFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/RevisionedUnresolvedRedirectException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/DataAccessSettings.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/PropertyInfoBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Hooks\/PageHistoryPagerHookHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/StatementSubjectRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/CachingItemOrderProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangedLanguagesCollector.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/Values\/LiteralValueRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/SourceDispatchingPropertyDataTypeLookupTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":57,"column":36},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":81,"column":36}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyLabelWithFallback\/GetPropertyLabelWithFallbackRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyStatements\/GetPropertyStatementsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Specials\/SpecialEntityPage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemAliasesInLanguage\/GetItemAliasesInLanguage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/tests\/EntityChangeTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":45,"column":13},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":51,"column":13}]},"\/src\/repo\/repo\/includes\/Rdf\/EntityRdfBuilderFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityFactoryTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":39,"column":71}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyLabelWithFallback\/GetPropertyLabelWithFallbackValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/ItemDiffTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/ReplaceStatement\/ReplaceStatement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/DataTypeValidatorFactoryTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":40,"column":49}]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Statement\/Statement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemDescriptions\/GetItemDescriptions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ItemDisambiguationFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemLabelWithFallback\/DeserializedGetItemLabelWithFallbackRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/AddPropertyStatement\/AddPropertyStatementTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/DummyLocalizedTextProvider.php":{"errors":1,"warnings":1,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":23,"column":12},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":26,"column":24}]},"\/src\/repo\/lib\/includes\/Store\/MatchingTermsLookupFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/ReplaceStatement\/ReplaceStatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemAliasesInLanguage\/GetItemAliasesInLanguageRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/GetStatementRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpsResult.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/SiteLinkPageNormalizerSitelinkTargetResolver.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/WikibaseContentLanguages.php":{"errors":3,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":51,"column":19},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":70,"column":19},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":144,"column":19}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyStatements\/GetPropertyStatements.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityMetaTagsCreatorFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Api\/PageTerms.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":174,"column":13}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityTypesConfigValueTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyLabelWithFallback\/GetPropertyLabelWithFallbackResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/MwTimeIsoFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemStatement\/GetItemStatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/WikibaseServicesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/ApiEntitySource.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityIdLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemAliasesInLanguage\/DeserializedGetItemAliasesInLanguageRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemLabelWithFallback\/GetItemLabelWithFallbackRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/NonLanguageBoundChangesCounter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/ContentLanguages.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Dumpers\/RdfDumpGeneratorTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":238,"column":27},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":283,"column":35}]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Statement\/Grouper\/FilteringStatementGrouper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/maintenance\/searchEntities.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":143,"column":22}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemStatement\/DeserializedGetItemStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Hooks\/Formatters\/EntityLinkFormatterFactory.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":39,"column":28}]},"\/src\/repo\/repo\/includes\/Store\/WikiPageEntityStorePermissionChecker.php":{"errors":3,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":174,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":203,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":257,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemAliasesInLanguage\/GetItemAliasesInLanguageValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/SiteLinkLookupSitelinkValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/unit\/Deserializers\/EntityDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/ReplacePropertyStatement\/ReplacePropertyStatement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Statement\/Grouper\/StatementGrouper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemStatement\/GetItemStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/EditEntity\/MediaWikiEditEntity.php":{"errors":1,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":200,"column":43},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":510,"column":12}]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/GetSitelinksRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Api\/RemoveClaimsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/ReplacePropertyStatement\/ReplacePropertyStatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyLabelWithFallback\/GetPropertyLabelWithFallback.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemLabelWithFallback\/GetItemLabelWithFallbackResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/LocalRepoWikiPageMetaDataAccessorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/DatabaseTypeIdsStoreTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/LangLinkSiteGroupsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpDescriptionResult.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/CachingFallbackLabelDescriptionLookup.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":108,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemAliasesInLanguage\/GetItemAliasesInLanguageResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyLabelWithFallback\/DeserializedGetPropertyLabelWithFallbackRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemLabelWithFallback\/GetItemLabelWithFallbackValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/TermStoreWriterFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ValidatorErrorLocalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/tests\/RepoRevisionIdentifierTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Statement\/StatementByGuidMap.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":67,"column":13}]},"\/src\/repo\/repo\/includes\/Store\/DispatchingEntityStoreWatcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Statement\/StatementListHolder.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":17,"column":12}]},"\/src\/repo\/lib\/includes\/Store\/PropertyInfoProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Specials\/SpecialDispatchStats.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":26,"column":12}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyAliases\/DeserializedPatchPropertyAliasesRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Hooks\/ChangesListSpecialPageHookHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/ReplacePropertyStatement\/ReplacePropertyStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemovePropertyLabel\/RemovePropertyLabelValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCaseRequestValidation\/DeserializedRequestAdapter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemStatement\/GetItemStatement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EditFilterHookRunnerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpBase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/EntityTitleStoreLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/ReplacePropertyStatement\/DeserializedReplacePropertyStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/PropertyValuePairDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemovePropertyLabel\/DeserializedRemovePropertyLabelRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/SqlChangeStore.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/DataAccess\/Scribunto\/WikibaseLanguageIndependentLuaBindingsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/ByTypeDispatchingEntityIdLookup.php":{"errors":2,"warnings":1,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":46,"column":12},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":63,"column":40},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":68,"column":12}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityStoreTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AssertPropertyExists.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyAliases\/PatchPropertyAliasesResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/TempUserStatus.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/WikibaseEntityPermissionChecker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/maintenance\/ResubmitChanges.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":62,"column":27}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetItemLabelWithFallback\/GetItemLabelWithFallback.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/unit\/Deserializers\/LegacySnakListDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/TermFallbackCacheTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/Statement\/StatementGuidValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/EntityIdLocalPartPageTableEntityQuery.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":26,"column":15},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":30,"column":15}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetLatestPropertyRevisionMetadata.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpApplyException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/SitelinksReadModelConverterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/ChangeHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/TermsCollisionDetector.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/TermsRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/OutputFormatValueFormatterFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/PropertyInfoTable.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/EditEntity\/EditEntity.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityContentFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchProperty\/PatchedPropertyValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Hooks\/Formatters\/DefaultEntityLinkFormatter.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":127,"column":12}]},"\/src\/repo\/lib\/includes\/Summary.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/PropertyView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Hooks\/SidebarBeforeOutputHookHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/AddItemStatement\/AddItemStatementTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/TermBufferTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemovePropertyLabel\/RemovePropertyLabelRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/NullEntityRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Interactors\/ItemMergeInteractorTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":103,"column":21}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/DescriptionsDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ItemDisambiguationFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/src\/EntitySourceLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchProperty\/DeserializedPatchPropertyRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/GetPropertyLabel\/GetPropertyLabelTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveItemStatement\/RemoveItemStatement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Specials\/SpecialEntityUsage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Rdbms\/ClientDomainDbFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Rdbms\/ClientDomainDb.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/SitelinkSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveItemStatement\/RemoveItemStatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/src\/DataValue\/ValuesFinder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/GetItemStatementsRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Hooks\/Formatters\/EntityLinkFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/CompactEntitySerializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/PrefetchingTermLookupAliasesRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/TermLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Hooks\/LabelPrefetchHookHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/ValueValidatorLanguageCodeValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/LabelsSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/EntityTypesConfigFeddyPropsAugmenter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/EditEntity\/EditEntityStatus.php":{"errors":1,"warnings":0,"messages":[{"message":"Doc comment for parameter \"$sv\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":31,"column":5}]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/ItemPatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/DefaultValueFormatterBuildersTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Api\/WikibaseApiTestCase.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":168,"column":47}]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/DataAccess\/Scribunto\/WikibaseLuaEntityBindingsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveItemStatement\/RemoveItemStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/LoggerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyAliases\/PatchedPropertyAliasesValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyAliases\/PatchPropertyAliasesValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/WikibaseServicesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Hooks\/SkinAfterPortletHandlerTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":160,"column":35}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemoveItemStatement\/DeserializedRemoveItemStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/EntityUpdaterStatementUpdater.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/GenericEventDispatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/Deserializers\/StatementDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/fixtures\/FakeEntityDocument.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/EntityChangeLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntitySearchHelperTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/PlaceholderExpander\/ExternallyRenderedEntityViewPlaceholderExpanderTest.php":{"errors":2,"warnings":0,"messages":[{"message":"Doc comment for parameter \"$id\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":226,"column":5},{"message":"Doc comment for parameter \"$revisionId\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":248,"column":5}]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/RouteHandlers\/RouteHandlersTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Hooks\/ArticleRevisionVisibilitySetHookHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Diff\/SiteLinkDiffView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/Exceptions\/EntityUpdateFailed.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/RepoItemUriParserTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/Exceptions\/StatementSubjectDisappeared.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/UpdateExceptionHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/DispatchingEntityTypeStatementGrouperTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Serializer\/ClientStatementListSerializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/fixtures\/ItemFixtures.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/WikibaseEntityRevisionLookupItemRevisionMetadataRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/SnakNormalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/LabelsProviderEntityIdHtmlLinkFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/fixtures\/PropertyFixtures.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddItemAliasesInLanguage\/AddItemAliasesInLanguage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Serializer\/ClientEntitySerializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/LocalEntityTypesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/AliasTermBufferTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/PropertyTermsRebuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/tests\/phpunit\/NewDatabaseEntitySourceTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/unit\/Deserializers\/LegacyPropertyDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/Sql\/Terms\/DatabaseItemTermStoreWriterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/RemovePropertyLabel\/RemovePropertyLabel.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/EntityUpdater.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Merge\/MergeFactory.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":73,"column":12}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/MediaWikiLanguageDirectionalityLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/LocalizedTextProviderFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/SimpleCacheTestCase.php":{"errors":0,"warnings":4,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":286,"column":16},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":330,"column":16},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":374,"column":16},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":466,"column":19}]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/WikibaseEntityRevisionLookupPropertyRevisionMetadataRetriever.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":27,"column":17}]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOps.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":122,"column":13}]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/tests\/ChangeRowTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/WikibasePingback.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":221,"column":50},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":371,"column":45}]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/fixtures\/EntityOfUnknownType.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/EntityDifferTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/RouteHandlers\/RoutesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetPropertyLabel\/SetPropertyLabelResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/StatementGuidValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyDescriptions\/DeserializedPatchPropertyDescriptionsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/BabelUserLanguageLookupDouble.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":18,"column":15}]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/TermsLanguagesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddItemAliasesInLanguage\/AddItemAliasesInLanguageResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/GetLatestItemRevisionMetadataTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Rdbms\/DomainDb.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AssertUserIsAuthorized.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/integration\/includes\/Api\/PageTermsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/Deserializers\/SnakListDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/ItemPartsSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyAliases\/PatchPropertyAliasesRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyDescriptions\/PatchPropertyDescriptionsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/SettingsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityUrlLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/bootstrap.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Api\/FormatSnakValue.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":255,"column":13}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/ChangeOpsMergeTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":77,"column":35}]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/RemoveStatementRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/EntityRevisionLookupStatementRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/SiteLinksRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/SiteLinkGlobalIdentifiersProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityParserOutputGeneratorFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/EditEntity\/StatsdSaveTimeRecordingEntityStore.php":{"errors":8,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":40,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":44,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":64,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":75,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":79,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":83,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":87,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":91,"column":12}]},"\/src\/repo\/view\/src\/Termbox\/Renderer\/TermboxRemoteRenderer.php":{"errors":5,"warnings":1,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":31,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":90,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":102,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":110,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":126,"column":13},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":127,"column":27}]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpRemoveSiteLink.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Localizer\/MessageParameterFormatterTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":69,"column":17},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":87,"column":17}]},"\/src\/repo\/repo\/includes\/Notifications\/ChangeHolder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Merge\/Validator\/NoCrossReferencingStatements.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/EntityFactoryTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":24,"column":23},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":27,"column":27}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Api\/GetClaimsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityDifferTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":29,"column":78},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":35,"column":78}]},"\/src\/repo\/lib\/includes\/Rdbms\/ReplicationWaiter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/Termbox\/Renderer\/TermboxNoRemoteRendererException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Rdbms\/RepoDomainDb.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/Sql\/SqlSiteLinkConflictLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/AliasesDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddPropertyAliasesInLanguage\/AddPropertyAliasesInLanguageResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/Values\/QuantityRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Notifications\/ChangeTransmitter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Api\/ApiListEntityUsage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/Values\/MonolingualTextRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/AffectedPagesFinderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetPropertyLabel\/SetPropertyLabelRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/maintenance\/EntityQuantityUnitRebuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/Termbox\/Renderer\/TermboxRenderer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/Termbox\/Renderer\/TermboxRenderingException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/Sql\/Terms\/TermStoreWriterFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/PlaceholderExpander\/TermboxRequestInspectorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddPropertyAliasesInLanguage\/DeserializedAddPropertyAliasesInLanguageRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/Deserializers\/EntityIdDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/PatchPropertyDescriptionsRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddItemAliasesInLanguage\/AddItemAliasesInLanguageRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/MatchingTermsLookupFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/Values\/CommonsMediaRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/RouteHandlers\/AssertValidTopLevelFieldsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetPropertyLabel\/DeserializedSetPropertyLabelRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/ErrorHandlingSnakFormatter.php":{"errors":1,"warnings":0,"messages":[{"message":"Doc comment for parameter \"...$args\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":98,"column":5}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Hooks\/MakeGlobalVariablesScriptHookHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/StatementListSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/FallbackLookupFactoryTermsRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Notifications\/HookChangeTransmitter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyAliases\/PatchPropertyAliases.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddItemAliasesInLanguage\/AddItemAliasesInLanguageValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddItemAliasesInLanguage\/DeserializedAddItemAliasesInLanguageRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Localizer\/MessageExceptionLocalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityExistenceCheckerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/UpdateRepo\/UpdateRepoOnDeleteJob.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/WholeEntityEditSummaryToFormattableSummaryConverterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Rdbms\/RepoDomainDbFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Api\/MetaDataBridgeConfig.php":{"errors":4,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":42,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":57,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":64,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":75,"column":12}]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiring\/RepoDomainDbFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyLabels\/DeserializedGetPropertyLabelsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/WikiPageEntityRevisionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Specials\/SpecialUnconnectedPages.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/FederatedProperties\/ApiPrefetchingTermLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/SiteLinkChangeOpFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityContentDataCodecTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Store\/ClientStore.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/Values\/ObjectUriRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/Termbox\/TermboxModule.php":{"errors":1,"warnings":0,"messages":[{"message":"Doc comment for parameter \"$file\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":23,"column":5}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemDescriptions\/PatchItemDescriptionsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/PageTableEntityQuery.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/ItemDifferTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/FederatedProperties\/FederatedPropertiesTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchPropertyDescriptions\/PatchedPropertyDescriptionsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/EscapingValueFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityChangeFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/ItemSerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiringTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/Sql\/Terms\/Util\/MockJobQueueFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/EntityDocumentView.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/RemoveItemDescription\/RemoveItemDescriptionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/EntityTermsViewFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpStatementRank.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/ErrorResponseToHttpStatus.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/Sql\/Terms\/EntityTermsSelectQueryBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/LanguageFallbackIndicatorTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":24,"column":35}]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/tests\/unit\/Statement\/StatementTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/Values\/TabularDataRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/Deserializers\/ReferenceListDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Statement\/StatementList.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddPropertyAliasesInLanguage\/AddPropertyAliasesInLanguage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/KartographerEmbeddingHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Localizer\/DispatchingExceptionLocalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/EditEntity\/MediaWikiEditFilterHookRunner.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/PrefetchingWikiPageEntityMetaDataAccessor.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":261,"column":13}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/Values\/ComplexValueRdfHelperTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/UpdateRepo\/UpdateRepoOnMove.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/NonExistingEntityIdHtmlFormatterLinker.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":52,"column":12}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddPropertyAliasesInLanguage\/AddPropertyAliasesInLanguageValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/RepoLinkerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Api\/EditSummaryHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpValidationException.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":50,"column":43}]},"\/src\/repo\/lib\/includes\/Store\/Sql\/WikiPageEntityMetaDataAccessor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/RouteHandlers\/ResponseFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/PropertyDataTypeChangerTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":130,"column":35}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetPropertyLabel\/SetPropertyLabel.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/SummaryFormatterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/EntityChangeNotificationJobTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Statement\/ReferencedStatementFilter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/UpdateRepo\/UpdateRepoOnDelete.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/SetPropertyLabel\/SetPropertyLabelValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Merge\/StatementsMerger.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":50,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":126,"column":13}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Api\/MetaDataBridgeConfigTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/MockPropertyLabelResolver.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/FederatedProperties\/Diff\/EntityContentDiffViewTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/EntityView.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":47,"column":15}]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/unit\/Deserializers\/LegacyItemDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/maintenance\/rebuildItemsPerSite.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/TermboxFlagTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetSitelinks\/GetSitelinksRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ItemRedirectCreationInteractorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Notifications\/ChangeNotifier.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Actions\/ViewEntityAction.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/EntityTypeDefinitions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/NonExistingEntityIdHtmlBrokenLinkFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/TermBufferTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/src\/Internal\/MapValueHasher.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":21,"column":12}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/ChangeOpFactoryProviderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetSitelinks\/GetSitelinksValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/RouteHandlers\/Middleware\/ResponseHeaderCountingTestMiddleware.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetSitelinks\/DeserializedGetSitelinksRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/SiteLinkPageNormalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/tests\/phpunit\/EntitySourceDefinitionsConfigParserTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Store\/AddUsagesForPageJob.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":41,"column":30},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":101,"column":30}]},"\/src\/repo\/view\/src\/ViewContent.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":27,"column":12}]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/tests\/fixtures\/CustomEntityId.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddPropertyAliasesInLanguage\/AddPropertyAliasesInLanguageRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/SetPropertyDescriptionRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/SitelinkDeserializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Search\/Fields\/FieldDefinitionsFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/EntityDiffOldTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/Values\/EntityIdRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityIdHtmlLinkFormatterFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/tests\/bootstrap.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemDescriptions\/PatchedItemDescriptionsValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetSitelinks\/GetSitelinksResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Localizer\/ChangeOpValidationExceptionLocalizerTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":75,"column":17}]},"\/src\/repo\/view\/src\/FallbackChainModuleMethods.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":24,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/EntityRevisionLookupPropertyDataRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemDescriptions\/DeserializedPatchItemDescriptionsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/RemoveStatement\/RemoveStatementTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/Deserializers\/SiteLinkDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/EntityParserOutputDataUpdaterCollectionTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/UpdateRepo\/UpdateRepoJob.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ViewFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpReferenceRemove.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/MockRepositoryTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":694,"column":17}]},"\/src\/repo\/repo\/includes\/EditEntity\/MediaWikiEditEntityFactory.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":81,"column":12}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/Serialization\/PropertySerializer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/SettingsArray.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/HtmlTimeFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/SitelinksValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Localizer\/ParseExceptionLocalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/TermValidatorFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/Values\/QuantityRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/tests\/phpunit\/FakePrefetchingTermLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetSitelinks\/GetSitelinks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/Values\/GeoShapeRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/FederatedProperties\/FederatedPropertiesTestTrait.php":{"errors":4,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":61,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":66,"column":13},{"message":"Doc comment for parameter \"$name\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":107,"column":5},{"message":"Doc comment for parameter \"$value\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":107,"column":5}]},"\/src\/repo\/repo\/includes\/DispatchingEntityTypeStatementGrouper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/CachingPrefetchingTermLookup.php":{"errors":14,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":91,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":98,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":106,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":114,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":122,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":143,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":148,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":243,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":302,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":311,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":323,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":337,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":362,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":380,"column":13}]},"\/src\/repo\/client\/tests\/phpunit\/integration\/includes\/Api\/ApiListEntityUsageTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/GetItemDescriptionWithFallback\/GetItemDescriptionWithFallbackTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Units\/CSVUnitStorage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/PropertyServicesTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":28,"column":42},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":31,"column":47}]},"\/src\/repo\/client\/includes\/UpdateRepo\/UpdateRepo.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/NumberLocalizerFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchItemDescriptions\/PatchItemDescriptionsRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/tests\/phpunit\/EntityPrefetcherSpy.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Units\/UnitStorage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddPropertyStatement\/AddPropertyStatementResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/UnmappedEntityIdValueFormatter.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":13,"column":12}]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/CachingSiteLinkLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Localizer\/GenericExceptionLocalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityRedirectCheckerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/Sql\/Terms\/DatabaseTermsCollisionDetector.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":138,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchSitelinks\/PatchSitelinks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/MockRepository.php":{"errors":7,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":103,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":372,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":442,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":462,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":466,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":484,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":609,"column":12}]},"\/src\/repo\/repo\/includes\/EditEntity\/StatsdSaveTimeRecordingEditEntity.php":{"errors":8,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":36,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":40,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":44,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":48,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":52,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":56,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":64,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":68,"column":12}]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Helpers\/TestPropertyValuePairDeserializerFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/maintenance\/dumpJson.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/Sql\/Terms\/Util\/ReplicaPrimaryAwareRecordIdsAcquirerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddPropertyStatement\/DeserializedAddPropertyStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Api\/ApiJsonFormatTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":158,"column":13}]},"\/src\/repo\/view\/src\/ViewHooks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/DispatchStatsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/unit\/Deserializers\/LegacyStatementDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Units\/JsonUnitStorage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Usage\/EntityUsageFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ItemMergeInteractorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/ServiceWiringTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/TermLookupEntityTermsRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/tests\/EntityDiffChangedAspectsFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/EntityIdFormatterFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/DatabaseTermInLangIdsResolver.php":{"errors":3,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":197,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":206,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":210,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/SetSitelinkRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/GetLatestPropertyRevisionMetadataTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/PropertyInfoBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Validators\/LabelDescriptionNotEqualValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Notifications\/WikiPageActionEntityChangeFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/TermLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/LanguageDirectionalityLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/integration\/LegacyDeserializerFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Store\/DescriptionLookup.php":{"errors":0,"warnings":3,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":73,"column":31},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":146,"column":47},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":157,"column":53}]},"\/src\/repo\/lib\/includes\/Units\/InMemoryUnitStorage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/UnknownTypeEntityIdHtmlLinkFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Validators\/UniquenessViolation.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/Sql\/Terms\/Util\/FakeLoadBalancer.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":31,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":46,"column":12}]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/GetPropertyAliasesInLanguage\/GetPropertyAliasesInLanguageTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Localizer\/ChangeOpApplyExceptionLocalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Notifications\/ChangeTransmitterException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/EntityTypesTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":64,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddPropertyStatement\/AddPropertyStatementRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/EditEntity\/StatsdTimeRecordingEditFilterHookRunner.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/Values\/TimeRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/RouteHandlers\/Middleware\/TempUserCreationResponseHeaderMiddlewareTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":40,"column":13},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":76,"column":13}]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/tests\/RepoRevisionIdentifierFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Formatters\/EscapingValueFormatterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/DispatchingEntityIdHtmlLinkFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/tests\/unit\/NewItem.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":190,"column":34}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ItemVocabularyBaseUriTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":28,"column":17}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Dumpers\/JsonDumpGeneratorTest.php":{"errors":0,"warnings":3,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":119,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":274,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":385,"column":35}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/RdfBuilderFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/FederatedProperties\/FederatedPropertiesAwareDispatchingEntityIdParserTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/EditEntity\/EditFilterHookRunner.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/Template\/TemplateFactory.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":22,"column":19}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/LoggerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/UpdateRepo\/UpdateRepoOnMoveJob.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/CachingPropertyInfoLookup.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":186,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":193,"column":13}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/IdGeneratorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Formatters\/MonolingualWikitextFormatter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Usage\/UsageDeduplicator.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":117,"column":13}]},"\/src\/repo\/data-access\/tests\/phpunit\/ApiEntitySourceTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/Sql\/WikiPageEntityRedirectLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/Template\/TemplateRegistry.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/PageImagesDataUpdaterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchSitelinks\/PatchedSitelinksValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/Internal\/FingerprintPatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Localizer\/ChangeOpDeserializationExceptionLocalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/Sql\/Terms\/Util\/FakeLBFactory.php":{"errors":6,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":27,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":35,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":43,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":47,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":51,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected","severity":5,"fixable":false,"type":"ERROR","line":71,"column":15}]},"\/src\/repo\/lib\/tests\/phpunit\/ServiceBySourceAndTypeDispatcherTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":42,"column":16}]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/integration\/Deserializers\/StatementDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Validators\/RegexValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/PatchItemLabelsRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/EntityUpdaterItemUpdater.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/Values\/TimeRdfBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/AliasTermBufferTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/tests\/MockRepoClientCentralIdLookup.php":{"errors":5,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":45,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":49,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":55,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":61,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":74,"column":12}]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/DataAccess\/Scribunto\/EntityAccessorTest.php":{"errors":1,"warnings":0,"messages":[{"message":"Doc comment for parameter \"$statementDeprecated\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":247,"column":5}]},"\/src\/repo\/client\/tests\/phpunit\/integration\/includes\/Api\/ApiFormatReferenceUnitTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Units\/UnitConverter.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":40,"column":12}]},"\/src\/repo\/repo\/includes\/Rdf\/Values\/GlobeCoordinateRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchSitelinks\/PatchSitelinksResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/SiteLinkTable.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":76,"column":13}]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddPropertyStatement\/AddPropertyStatement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/Template\/Template.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/UpdateRepo\/UpdateRepoOnDeleteTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/JsonDiffJsonPatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/MultiPropertyTermStoreWriter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/SnakFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/StatementGrouperBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/AddPropertyStatement\/AddPropertyStatementValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/Values\/GeoShapeRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Store\/UsageUpdater.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Usage\/NullUsageTracker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/FederatedPropertiesServiceFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Validators\/CompositeValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/TitleLookupBasedEntityTitleTextLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/EntityUpdaterStatementRemover.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Hooks\/ShowSearchHitHandlerTest.php":{"errors":0,"warnings":4,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":54,"column":17},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":126,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":174,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":193,"column":39}]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/GetItemLabels\/GetItemLabelsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/StoreTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/EntityParserOutputGeneratorFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/LanguageNameLookupFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/IO\/EntityIdReaderTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":36,"column":27}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/TermsLanguagesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Store\/DescriptionLookupTest.php":{"errors":0,"warnings":6,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":204,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":205,"column":49},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":210,"column":39},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":233,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":234,"column":49},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":261,"column":17}]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/integration\/Deserializers\/EntityDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/EntityStoreWatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchSitelinks\/PatchSitelinksRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Units\/BaseUnitStorage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Usage\/HashUsageAccumulator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/WikibaseEntityRevisionLookupStatementSubjectRevisionMetadataRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/LanguageFallbackChainFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/Internal\/SiteLinkListPatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/FingerprintSearchTextGenerator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchSitelinks\/PatchSitelinksValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyLabel\/GetPropertyLabel.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/Values\/EntityIdRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/IO\/LineReaderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Validators\/TimestampPrecisionValidator.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":38,"column":12}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/SnakValueDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Api\/RemoveReferencesTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":100,"column":21},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":130,"column":13}]},"\/src\/repo\/lib\/tests\/phpunit\/Formatters\/FormatterLabelDescriptionLookupFactoryTest.php":{"errors":0,"warnings":3,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":59,"column":30},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":63,"column":39},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":77,"column":25}]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/DataAccess\/Scribunto\/WikibaseLanguageDependentLuaBindingsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/PropertyValueExpertsModuleTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyLabel\/GetPropertyLabelValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/SearchEntitiesRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/PatchSitelinks\/DeserializedPatchSitelinksRequest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Dumpers\/JsonDataTypeInjectorTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":127,"column":35}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/CommonsMediaValueNormalizerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/FederatedProperties\/ParserOutput\/FederatedPropertiesUiEntityParserOutputGeneratorDecoratorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ItemDisambiguation.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/EntityTypeDefinitionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/Deserializers\/SnakDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/tests\/phpunit\/EntitySourceLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpsMerge.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Actions\/SubmitEntityAction.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/GlobalStateFactoryMethodsResourceTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/integration\/includes\/Api\/ApiClientInfoTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Validators\/NumberValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/PurgeEntityDataJobTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Application\/UseCases\/GetPropertyLabel\/GetPropertyLabelResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/RemoveSitelink\/RemoveSitelinkTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/Sql\/DatabaseSchemaUpdater.php":{"errors":2,"warnings":3,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":193,"column":13},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":228,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":276,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":280,"column":13},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":309,"column":46}]},"\/src\/repo\/lib\/includes\/PropertyInfoSnakUrlExpander.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/ReadModel\/AliasesInLanguage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/Sql\/SqlIdGenerator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/RouteHandlers\/Middleware\/RequestPreconditionCheckTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/AddPageInfo.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/Values\/ComplexValueRdfHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangedLanguagesCounter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Actions\/SubmitEntityStatus.php":{"errors":1,"warnings":0,"messages":[{"message":"Doc comment for parameter \"$sv\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":30,"column":5}]},"\/src\/repo\/lib\/includes\/Formatters\/CachingKartographerEmbeddingHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/ValueParserFactoryTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":88,"column":16}]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/PrefetchingTermLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/TermFallbackCache\/TermFallbackCacheFacade.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/DummyChangeOpResult.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/integration\/TestFactoryBuilder.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":23,"column":19},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":46,"column":19}]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/UpdateRepo\/UpdateRepoOnMoveTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/ChangeOpReferenceTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Parsers\/EntityIdValueParser.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/CompactBaseDataModelSerializerFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/tests\/phpunit\/EntityPrefetcherSpyTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/TermFallbackCache\/TermFallbackSerializerTrait.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/ImageLinksDataUpdaterTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":31,"column":35}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/AnonymousEditWarningBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/TermValidatorFactoryPropertyLabelValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/integration\/SerializerFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/SubEntityTypesMapperTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/ReadModel\/Value.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/SnakFormatterFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Validators\/MembershipValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Parsers\/WikibaseStringValueNormalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Actions\/HistoryEntityAction.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/MediaWikiLocalizedTextProviderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/StatementHtmlGenerator.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":139,"column":13}]},"\/src\/repo\/lib\/tests\/phpunit\/Formatters\/HtmlExternalIdentifierFormatterTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":27,"column":40},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":31,"column":39}]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/ReadModel\/ItemRevision.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/Values\/LiteralValueRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/maintenance\/DumpEntities.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":255,"column":76}]},"\/src\/repo\/lib\/includes\/Store\/HashSiteLinkStore.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/EntityContentTooBigException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Store\/Sql\/UnexpectedUnconnectedPagePrimer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Hooks\/InfoActionHookHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/BaseDataModelDeserializerFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/TermFallbackCache\/TermFallbackCacheServiceFactory.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":20,"column":12}]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/DatabaseTermInLangIdsAcquirer.php":{"errors":5,"warnings":3,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":121,"column":44},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":127,"column":44},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":235,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":312,"column":13},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":357,"column":21},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":394,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":416,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":421,"column":13}]},"\/src\/repo\/view\/src\/ViewPlaceHolderEmitter.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":21,"column":12}]},"\/src\/repo\/client\/includes\/Usage\/UsageAspectTransformer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/EntityMetaTagsCreator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Parsers\/MonolingualTextParser.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/DefaultValidatorBuildersTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/integration\/DeserializerFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/CreatePropertyRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Validators\/NumberRangeValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/BagOStuffSiteLinkConflictLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/RouteHandlers\/Middleware\/BotRightCheckMiddlewareTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/DatabaseItemTermStoreWriter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Usage\/UsageTracker.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/PatchStatement\/PatchedStatementValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Store\/Sql\/PagePropsEntityIdLookup.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":47,"column":41}]},"\/src\/repo\/lib\/includes\/Store\/StorageException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/changes\/tests\/TestChanges.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":45,"column":20}]},"\/src\/repo\/repo\/includes\/Rdf\/Values\/ExternalIdentifierRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Store\/FallbackLabelDescriptionLookupFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/ReadModel\/Property.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/TermStoreCleaner.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/Deserializers\/ReferenceDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpFactoryProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/integration\/includes\/Api\/ApiFormatReferenceTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Infrastructure\/TermValidatorFactoryAliasesInLanguageValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/unit\/ServiceWiring\/PropertyTermStoreWriterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/maintenance\/rebuildEntityQuantityUnit.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/DataAccess\/EntityRevisionLookupItemDataRetriever.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/ReadModel\/PropertyValuePair.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/FederatedProperties\/ParserOutput\/FederatedPropertiesPrefetchingEntityParserOutputGeneratorDecoratorTest.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":86,"column":45},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":89,"column":43}]},"\/src\/repo\/lib\/includes\/Store\/FieldPropertyInfoProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/WikiPageEntityMetaDataLookup.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":287,"column":13}]},"\/src\/repo\/lib\/includes\/StringNormalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/tests\/unit\/SiteLinkListTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Validators\/EntityConstraintProvider.php":{"errors":2,"warnings":0,"messages":[{"message":"Doc comment for parameter \"$entityType\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":63,"column":5},{"message":"Doc comment for parameter \"$entityId\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":63,"column":5}]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/ReadModel\/Descriptions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/ChangeOpFingerprint.php":{"errors":5,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":28,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":32,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":36,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":40,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":44,"column":12}]},"\/src\/repo\/lib\/packages\/wikibase\/federated-properties\/src\/FederatedPropertyId.php":{"errors":2,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":61,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":69,"column":12}]},"\/src\/repo\/lib\/packages\/wikibase\/internal-serialization\/tests\/integration\/RealEntitiesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Infrastructure\/ModifiedLanguageCodes.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/CachingFallbackLabelDescriptionLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Parsers\/MwEraParser.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Formatters\/PlaintextTimeFormatterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/JulianDateTimeValueCleaner.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCaseRequestValidation\/ItemStatementIdRequestValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Validators\/DataValueValidator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/MediaWikiContentLanguages.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/RouteHandlers\/Middleware\/PreconditionMiddlewareTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/Deserializers\/SnakValueDeserializerTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":59,"column":33}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/WikibasePingbackTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/tests\/unit\/LegacyIdInterpreterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/FullEntityParserOutputGeneratorIntegrationTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/FederatedProperties\/ParserOutput\/EntityParserOutputGeneratorFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/maintenance\/populateChangesSubscription.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/LanguageNameLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Store\/UsageUpdaterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/DataAccess\/StatementTransclusionInteractorTest.php":{"errors":0,"warnings":3,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":201,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":219,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":246,"column":17}]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/ReadModel\/Statement.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/RdfVocabularyTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/Sql\/WikiPageEntityStore.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":204,"column":13}]},"\/src\/repo\/lib\/tests\/phpunit\/Sites\/SiteMatrixParserTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Reporting\/ExceptionHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/federated-properties\/tests\/FederatedPropertyIdTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/EntityLinkTargetEntityIdLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Parsers\/MediaWikiNumberUnlocalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/tests\/phpunit\/EntitySourceDefinitionsTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Reporting\/LogWarningExceptionHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/RouteHandlers\/Middleware\/AuthenticationMiddlewareTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/src\/Deserializers\/TermDeserializer.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":58,"column":13}]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/SourceAndTypeDispatchingTitleTextLookupTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/ReadModel\/Label.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/ChangeOpLabelTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Usage\/PageEntityUsages.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Validators\/ValidatorErrorLocalizer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/ReadModel\/PredicateProperty.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/DispatchingEntityMetaTagsCreatorFactoryTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":45,"column":40}]},"\/src\/repo\/lib\/includes\/Store\/SourceAndTypeDispatchingTitleTextLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-services\/tests\/unit\/Diff\/Internal\/AliasGroupListPatcherTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/RouteHandlers\/RemovePropertyStatementRouteHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Hooks\/EditFilterHookRunnerTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":43,"column":35}]},"\/src\/repo\/lib\/includes\/Reporting\/ReportingExceptionHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/ItemStubRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/WikibaseSettings.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/RouteHandlers\/Middleware\/MiddlewareHandlerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Formatters\/GlobeCoordinateKartographerFormatterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/EntityRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/GenericChangeOpResultTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Reporting\/RethrowingExceptionHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/tests\/phpunit\/unit\/MediaWiki\/EntitySourceDocumentUrlProviderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Specials\/SpecialModifyEntity.php":{"errors":1,"warnings":1,"messages":[{"message":"Doc comment for parameter \"$anonymousEditWarningBuilder\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":45,"column":5},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":302,"column":34}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/FederatedProperties\/ApiEntityExistenceCheckerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/ReadModel\/Item.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/DataAccess\/ReferenceFormatterFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/tests\/phpunit\/Serializer\/ForbiddenSerializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ParserOutput\/FallbackHintHtmlTermRendererTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Store\/AddUsagesForPageJobTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/ChangeOpResultStub.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/ChangeOp\/StatementChangeOpFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/maintenance\/dumpRdf.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Store\/Sql\/DirectSqlStore.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Usage\/UsageTrackingLanguageFallbackLabelDescriptionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/DatabaseMatchingTermsLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Api\/ApiXmlFormatTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/DataType.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Store\/Sql\/PropertyInfoTableBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Rdf\/DispatchingValueSnakRdfBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/Hooks\/ParserFunctionRegistrantTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/packages\/wikibase\/data-model-serialization\/tests\/unit\/SerializerFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCaseRequestValidation\/PropertyDescriptionEditRequestValidatingDeserializerTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Sites\/SitesBuilderTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/ChangedLanguagesCounterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/ChangeOpsTest.php":{"errors":0,"warnings":3,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":118,"column":29},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":196,"column":35},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":203,"column":35}]},"\/src\/repo\/view\/src\/SiteLinksView.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":243,"column":13}]},"\/src\/repo\/lib\/includes\/Store\/EntityStore.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/tests\/phpunit\/integration\/includes\/Store\/Sql\/BulkSubscriptionUpdaterTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/Store\/FallbackLabelDescriptionLookupFactoryTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/TermLanguageFallbackChain.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCases\/PatchItem\/PatchItemTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/view\/src\/HtmlSnakFormatterFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/TermCacheKeyBuilder.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":12,"column":12}]},"\/src\/repo\/lib\/includes\/LanguageNameLookupFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/StaticTypeIdsStore.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/src\/Domain\/ReadModel\/PropertyPartsBuilder.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Usage\/RedirectTrackingUsageAccumulator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Hooks\/LabelPrefetchHookHandlerTestBase.php":{"errors":0,"warnings":2,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":108,"column":45},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":111,"column":43}]},"\/src\/repo\/repo\/includes\/Validators\/TermValidatorFactory.php":{"errors":1,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":183,"column":12}]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/ChangeOp\/StatementListProviderDummy.php":{"errors":6,"warnings":0,"messages":[{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":31,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":35,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":39,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":43,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":47,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":55,"column":12}]},"\/src\/repo\/client\/tests\/phpunit\/unit\/includes\/DataAccess\/PropertyIdResolverTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/tests\/phpunit\/ParserFunctions\/CommaSeparatedListTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":28,"column":63}]},"\/src\/repo\/repo\/maintenance\/rebuildPropertyTerms.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/client\/includes\/Usage\/NullSubscriptionManager.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/rest-api\/tests\/phpunit\/Application\/UseCaseRequestValidation\/PropertyStatementIdRequestValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/data-access\/tests\/phpunit\/NewDatabaseEntitySource.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/tests\/phpunit\/includes\/Rdf\/SnakRdfBuilderTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":65,"column":35}]},"\/src\/repo\/lib\/packages\/wikibase\/data-model\/tests\/unit\/Statement\/StatementListTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/lib\/includes\/Store\/Sql\/Terms\/DatabasePropertyTermStoreWriter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/repo\/includes\/Parsers\/MwTimeIsoParser.php":{"errors":0,"warnings":1,"messages":[{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING&