Wikibase
MediaWiki Wikibase extension
Loading...
Searching...
No Matches
Wikibase\Client\Changes\ChangeHandler Class Reference

Interface for change handling. More...

Public Member Functions

 __construct (AffectedPagesFinder $affectedPagesFinder, TitleFactory $titleFactory, PageStore $pageStore, PageUpdater $updater, ChangeRunCoalescer $changeRunCoalescer, LoggerInterface $logger, WikibaseClientHookRunner $hookRunner, bool $injectRecentChanges=true)
 
 handleChanges (array $changes, array $rootJobParams=[])
 
 handleChange (EntityChange $change, array $rootJobParams=[])
 Main entry point for handling changes.
 

Private Member Functions

 getTitleBatchSignature (array $titles)
 
 getChangeSignature (EntityChange $change)
 
 getTitlesForUsages ( $usagesPerPage)
 
 getChangeIdForLog (Change $change)
 Returns a human readable change ID, containing multiple IDs in case of a coalesced change.
 

Private Attributes

 $affectedPagesFinder
 
 $titleFactory
 
 $pageStore
 
 $updater
 
 $changeRunCoalescer
 
 $logger
 
 $hookRunner
 
 $injectRecentChanges
 

Detailed Description

Interface for change handling.

Whenever a change is detected, it should be fed to this service which then takes care handling it.

See also
md_docs_topics_change-propagation for an overview of the change propagation mechanism.
Author
Daniel Kinzler

Constructor & Destructor Documentation

◆ __construct()

Wikibase\Client\Changes\ChangeHandler::__construct ( AffectedPagesFinder $affectedPagesFinder,
TitleFactory $titleFactory,
PageStore $pageStore,
PageUpdater $updater,
ChangeRunCoalescer $changeRunCoalescer,
LoggerInterface $logger,
WikibaseClientHookRunner $hookRunner,
bool $injectRecentChanges = true )
Parameters
AffectedPagesFinder$affectedPagesFinder
TitleFactory$titleFactory
PageStore$pageStore
PageUpdater$updater
ChangeRunCoalescer$changeRunCoalescer
LoggerInterface$logger
WikibaseClientHookRunner$hookRunner
bool$injectRecentChanges
Exceptions
InvalidArgumentException

Member Function Documentation

◆ getChangeIdForLog()

Wikibase\Client\Changes\ChangeHandler::getChangeIdForLog ( Change $change)
private

Returns a human readable change ID, containing multiple IDs in case of a coalesced change.

Parameters
Change$change
Returns
string

◆ getChangeSignature()

Wikibase\Client\Changes\ChangeHandler::getChangeSignature ( EntityChange $change)
private
Parameters
EntityChange$change
Returns
string a signature representing the change's identity.

◆ getTitleBatchSignature()

Wikibase\Client\Changes\ChangeHandler::getTitleBatchSignature ( array $titles)
private
Parameters
Title[]$titles
Returns
string a signature based on the hash of the given titles
See also
WikiPageUpdater::getPageParamForRefreshLinksJob

◆ getTitlesForUsages()

Wikibase\Client\Changes\ChangeHandler::getTitlesForUsages ( $usagesPerPage)
private
Parameters
PageEntityUsages[]$usagesPerPage
Returns
Title[]

◆ handleChange()

Wikibase\Client\Changes\ChangeHandler::handleChange ( EntityChange $change,
array $rootJobParams = [] )

Main entry point for handling changes.

Todo
process multiple changes at once!
Parameters
EntityChange$change
array$rootJobParamsany relevant root job parameters to be inherited by new jobs.

◆ handleChanges()

Wikibase\Client\Changes\ChangeHandler::handleChanges ( array $changes,
array $rootJobParams = [] )
Parameters
EntityChange[]$changes
array$rootJobParamsany relevant root job parameters to be inherited by new jobs.

Member Data Documentation

◆ $affectedPagesFinder

Wikibase\Client\Changes\ChangeHandler::$affectedPagesFinder
private

◆ $changeRunCoalescer

Wikibase\Client\Changes\ChangeHandler::$changeRunCoalescer
private

◆ $hookRunner

Wikibase\Client\Changes\ChangeHandler::$hookRunner
private

◆ $injectRecentChanges

Wikibase\Client\Changes\ChangeHandler::$injectRecentChanges
private

◆ $logger

Wikibase\Client\Changes\ChangeHandler::$logger
private

◆ $pageStore

Wikibase\Client\Changes\ChangeHandler::$pageStore
private

◆ $titleFactory

Wikibase\Client\Changes\ChangeHandler::$titleFactory
private

◆ $updater

Wikibase\Client\Changes\ChangeHandler::$updater
private

The documentation for this class was generated from the following file: