[MediaWiki-commits] [Gerrit] Track usage via Lua - change (mediawiki...Wikibase)
jenkins-bot has submitted this change and it was merged. Change subject: Track usage via Lua .. Track usage via Lua Entity usages via the wikibase Lua modules need to be tracked in the UsageTracker service. Bug: 71288 Change-Id: Ib47e3d9348f60b50c176162ca686cb06672fdfe9 --- M client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php M client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php M client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php M client/includes/scribunto/WikibaseLuaBindings.php M client/includes/scribunto/WikibaseLuaEntityBindings.php M client/tests/phpunit/includes/scribunto/Scribunto_LuaWikibaseEntityLibraryTest.php M client/tests/phpunit/includes/scribunto/Scribunto_LuaWikibaseLibraryTest.php M client/tests/phpunit/includes/scribunto/WikibaseLuaBindingsTest.php M client/tests/phpunit/includes/scribunto/WikibaseLuaEntityBindingsTest.php 9 files changed, 193 insertions(+), 41 deletions(-) Approvals: Hoo man: Looks good to me, approved jenkins-bot: Verified diff --git a/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php b/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php index 8af6deb..2632ff9 100644 --- a/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php +++ b/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php @@ -132,6 +132,7 @@ } /** +* @todo Share code with WikibaseLuaEntityBindings::trackUsage * @param Snak[] $snaks */ private function trackUsage( array $snaks ) { @@ -153,6 +154,8 @@ } /** +* @todo Share code with WikibaseLuaEntityBindings. +* * @param EntityId $entityId * @param PropertyId $propertyId * diff --git a/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php b/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php index 67323e7..5d43ab4 100644 --- a/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php +++ b/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php @@ -2,6 +2,7 @@ use ValueFormatters\FormatterOptions; use Wikibase\Client\Scribunto\WikibaseLuaEntityBindings; +use Wikibase\Client\Usage\ParserOutputUsageAccumulator; use Wikibase\Client\WikibaseClient; use Wikibase\Lib\SnakFormatter; @@ -21,13 +22,15 @@ */ private $wbLibrary; - /** -* Constructor for wrapper class, initialize member object holding implementation -* -* @param Scribunto_LuaEngine $engine -* @since 0.5 -*/ - public function __construct( $engine ) { + private function getImplementation() { + if ( !$this-wbLibrary ) { + $this-wbLibrary = $this-newImplementation(); + } + + return $this-wbLibrary; + } + + private function newImplementation() { // For the language we need $wgContLang, not parser target language or anything else. // See Scribunto_LuaLanguageLibrary::getContLangCode(). global $wgContLang; @@ -40,14 +43,13 @@ SnakFormatter::FORMAT_WIKI, $formatterOptions ); - $this-wbLibrary = new WikibaseLuaEntityBindings( + return new WikibaseLuaEntityBindings( $snakFormatter, $wikibaseClient-getStore()-getEntityLookup(), + new ParserOutputUsageAccumulator( $this-getParser()-getOutput() ), $wikibaseClient-getSettings()-getSetting( 'siteGlobalID' ), $wgContLang ); - - parent::__construct( $engine ); } /** @@ -76,7 +78,7 @@ * @return string[] */ public function getGlobalSiteId() { - return array( $this-wbLibrary-getGlobalSiteId() ); + return array( $this-getImplementation()-getGlobalSiteId() ); } /** @@ -99,7 +101,7 @@ $this-checkType( 'formatPropertyValues', 1, $propertyId, 'string' ); $this-checkType( 'formatPropertyValues', 2, $acceptableRanks, 'table' ); try { - return array( $this-wbLibrary-formatPropertyValues( $entityId, $propertyId, $acceptableRanks ) ); + return array( $this-getImplementation()-formatPropertyValues( $entityId, $propertyId, $acceptableRanks ) ); } catch ( InvalidArgumentException $e ) { throw new ScribuntoException( 'wikibase-error-invalid-entity-id' ); } diff --git a/client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php b/client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php index 5abe2aa..5a9fac5 100644 ---
[MediaWiki-commits] [Gerrit] Track usage via Lua - change (mediawiki...Wikibase)
Daniel Kinzler has uploaded a new change for review. https://gerrit.wikimedia.org/r/172248 Change subject: Track usage via Lua .. Track usage via Lua Entity usages via the wikibase Lua modules need to be tracked in the UsageTracker service. Bug: 71288 Change-Id: Ib47e3d9348f60b50c176162ca686cb06672fdfe9 --- M client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php M client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php M client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php M client/includes/scribunto/WikibaseLuaBindings.php M client/includes/scribunto/WikibaseLuaEntityBindings.php M client/tests/phpunit/includes/scribunto/WikibaseLuaBindingsTest.php M client/tests/phpunit/includes/scribunto/WikibaseLuaEntityBindingsTest.php 7 files changed, 150 insertions(+), 12 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/48/172248/1 diff --git a/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php b/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php index 84fa3c6..b72fd48 100644 --- a/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php +++ b/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php @@ -135,6 +135,7 @@ } /** +* @todo Share code with WikibaseLuaEntityBindings::trackUsage * @param Snak[] $snaks */ private function trackUsage( array $snaks ) { @@ -156,12 +157,14 @@ } /** +* @todo Share code with WikibaseLuaEntityBindings. +* * @param EntityId $entityId * @param PropertyId $propertyId * * @return Status a status object wrapping a wikitext string */ - private function renderWithStatus( EntityId $entityId, PropertyId $propertyId ) { + public function renderWithStatus( EntityId $entityId, PropertyId $propertyId ) { wfProfileIn( __METHOD__ ); $snaks = $this-snaksFinder-findSnaks( diff --git a/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php b/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php index 67323e7..7e60d76 100644 --- a/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php +++ b/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php @@ -2,6 +2,7 @@ use ValueFormatters\FormatterOptions; use Wikibase\Client\Scribunto\WikibaseLuaEntityBindings; +use Wikibase\Client\Usage\ParserOutputUsageAccumulator; use Wikibase\Client\WikibaseClient; use Wikibase\Lib\SnakFormatter; @@ -43,6 +44,7 @@ $this-wbLibrary = new WikibaseLuaEntityBindings( $snakFormatter, $wikibaseClient-getStore()-getEntityLookup(), + new ParserOutputUsageAccumulator( $this-getEngine()-getParser()-getOutput() ), $wikibaseClient-getSettings()-getSetting( 'siteGlobalID' ), $wgContLang ); diff --git a/client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php b/client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php index a546cf3..330b022 100644 --- a/client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php +++ b/client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php @@ -1,6 +1,7 @@ ?php use Wikibase\Client\Scribunto\WikibaseLuaBindings; +use Wikibase\Client\Usage\ParserOutputUsageAccumulator; use Wikibase\Client\WikibaseClient; use Wikibase\DataModel\Entity\EntityIdParsingException; use Wikibase\Utils; @@ -51,6 +52,7 @@ $wikibaseClient-getSettings(), $wikibaseClient-getPropertyDataTypeLookup(), $labelLookup, + new ParserOutputUsageAccumulator( $this-getEngine()-getParser()-getOutput() ), Utils::getLanguageCodes(), $wikibaseClient-getSettings()-getSetting( 'siteGlobalID' ) ); diff --git a/client/includes/scribunto/WikibaseLuaBindings.php b/client/includes/scribunto/WikibaseLuaBindings.php index f1f5568..e771911 100644 --- a/client/includes/scribunto/WikibaseLuaBindings.php +++ b/client/includes/scribunto/WikibaseLuaBindings.php @@ -5,6 +5,7 @@ use Language; use InvalidArgumentException; use OutOfBoundsException; +use Wikibase\Client\Usage\UsageAccumulator; use Wikibase\DataModel\Entity\Entity; use Wikibase\DataModel\Entity\ItemId; use Wikibase\DataModel\Entity\EntityIdParser; @@ -81,6 +82,11 @@ private $labelLookup; /** +* @var UsageAccumulator +*/ + private $usageAccumulator; + + /** * @param EntityIdParser $entityIdParser * @param EntityLookup $entityLookup * @param SiteLinkLookup $siteLinkTable @@ -89,6 +95,7 @@ * @param SettingsArray