From 3656607b7daa4b1a2b059e07f1c93c6ce3d2ec51 Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Thu, 11 Apr 2019 23:22:08 +0100 Subject: [PATCH] resourceloader: Deprecate ResourceLoaderContext::getConfig and ::getLogger The methods existed for two use cases. 1. Inside ResourceLoaderContext, usage was removed with I4e4ee758cd22. 2. In Module class methods that get $context, already have their own Config and Logger instances injected from ResourceLoader::getModule(), which should be used instead. Deprecating these opens the paths for making ResourceLoaderContext a purer value object with no ResourceLoader, Config, or Logger objects needing to be passed (in the future). Bug: T32956 Change-Id: I74a9535918ea43b2c00073c5d4469f864d1eeb41 --- RELEASE-NOTES-1.34 | 3 +++ includes/resourceloader/ResourceLoaderContext.php | 4 ++++ includes/resourceloader/ResourceLoaderStartUpModule.php | 2 +- .../includes/resourceloader/ResourceLoaderContextTest.php | 4 +++- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/RELEASE-NOTES-1.34 b/RELEASE-NOTES-1.34 index 33d060d477..5391c98fba 100644 --- a/RELEASE-NOTES-1.34 +++ b/RELEASE-NOTES-1.34 @@ -258,6 +258,9 @@ because of Phabricator reports. * DatabaseBlock::setCookie, DatabaseBlock::getCookieValue, DatabaseBlock::getIdFromCookieValue and AbstractBlock::shouldTrackWithCookie are moved to internal helper methods for BlockManager::trackBlockWithCookie. +* ResourceLoaderContext::getConfig and ResourceLoaderContext::getLogger have + been deprecated. Inside ResourceLoaderModule subclasses, use the local methods + instead. Elsewhere, use the methods from the ResourceLoader class. === Other changes in 1.34 === * … diff --git a/includes/resourceloader/ResourceLoaderContext.php b/includes/resourceloader/ResourceLoaderContext.php index 58152ea083..c596a239ff 100644 --- a/includes/resourceloader/ResourceLoaderContext.php +++ b/includes/resourceloader/ResourceLoaderContext.php @@ -134,6 +134,8 @@ class ResourceLoaderContext implements MessageLocalizer { } /** + * @deprecated since 1.34 Use ResourceLoaderModule::getConfig instead + * inside module methods. Use ResourceLoader::getConfig elsewhere. * @return Config */ public function getConfig() { @@ -148,6 +150,8 @@ class ResourceLoaderContext implements MessageLocalizer { } /** + * @deprecated since 1.34 Use ResourceLoaderModule::getLogger instead + * inside module methods. Use ResourceLoader::getLogger elsewhere. * @since 1.27 * @return \Psr\Log\LoggerInterface */ diff --git a/includes/resourceloader/ResourceLoaderStartUpModule.php b/includes/resourceloader/ResourceLoaderStartUpModule.php index d6cc646095..efed418106 100644 --- a/includes/resourceloader/ResourceLoaderStartUpModule.php +++ b/includes/resourceloader/ResourceLoaderStartUpModule.php @@ -258,7 +258,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule { } if ( $versionHash !== '' && strlen( $versionHash ) !== 7 ) { - $context->getLogger()->warning( + $this->getLogger()->warning( "Module '{module}' produced an invalid version hash: '{version}'.", [ 'module' => $name, diff --git a/tests/phpunit/includes/resourceloader/ResourceLoaderContextTest.php b/tests/phpunit/includes/resourceloader/ResourceLoaderContextTest.php index 7f4d9a8137..2ec8ea987a 100644 --- a/tests/phpunit/includes/resourceloader/ResourceLoaderContextTest.php +++ b/tests/phpunit/includes/resourceloader/ResourceLoaderContextTest.php @@ -47,8 +47,10 @@ class ResourceLoaderContextTest extends PHPUnit\Framework\TestCase { public function testAccessors() { $ctx = new ResourceLoaderContext( $this->getResourceLoader(), new FauxRequest( [] ) ); + $this->assertInstanceOf( ResourceLoader::class, $ctx->getResourceLoader() ); + $this->assertInstanceOf( Config::class, $ctx->getConfig() ); $this->assertInstanceOf( WebRequest::class, $ctx->getRequest() ); - $this->assertInstanceOf( \Psr\Log\LoggerInterface::class, $ctx->getLogger() ); + $this->assertInstanceOf( Psr\Log\LoggerInterface::class, $ctx->getLogger() ); } public function testTypicalRequest() { -- 2.20.1