MediaWiki REL1_34
WatchedItemStore Class Reference

Storage layer class for WatchedItems. More...

Inheritance diagram for WatchedItemStore:
Collaboration diagram for WatchedItemStore:

Public Member Functions

 __construct (ILBFactory $lbFactory, JobQueueGroup $queueGroup, BagOStuff $stash, HashBagOStuff $cache, ReadOnlyMode $readOnlyMode, $updateRowsPerQuery, NamespaceInfo $nsInfo, RevisionLookup $revisionLookup)
 
 addWatch (UserIdentity $user, LinkTarget $target)
 
 addWatchBatchForUser (UserIdentity $user, array $targets)
 
 clearUserWatchedItems (UserIdentity $user)
 Deletes ALL watched items for the given user when under $updateRowsPerQuery entries exist.
 
 clearUserWatchedItemsUsingJobQueue (UserIdentity $user)
 Queues a job that will clear the users watchlist using the Job Queue.
 
 countUnreadNotifications (UserIdentity $user, $unreadLimit=null)
 
 countVisitingWatchers (LinkTarget $target, $threshold)
 
 countVisitingWatchersMultiple (array $targetsWithVisitThresholds, $minimumWatchers=null)
 
 countWatchedItems (UserIdentity $user)
 
 countWatchers (LinkTarget $target)
 
 countWatchersMultiple (array $targets, array $options=[])
 
 duplicateAllAssociatedEntries (LinkTarget $oldTarget, LinkTarget $newTarget)
 
 duplicateEntry (LinkTarget $oldTarget, LinkTarget $newTarget)
 
 getLatestNotificationTimestamp ( $timestamp, UserIdentity $user, LinkTarget $target)
 Convert $timestamp to TS_MW or return null if the page was visited since then by $user.
 
 getMaxId ()
 
 getNotificationTimestampsBatch (UserIdentity $user, array $targets)
 
 getWatchedItem (UserIdentity $user, LinkTarget $target)
 
 getWatchedItemsForUser (UserIdentity $user, array $options=[])
 
 isWatched (UserIdentity $user, LinkTarget $target)
 
 loadWatchedItem (UserIdentity $user, LinkTarget $target)
 
 overrideDeferredUpdatesAddCallableUpdateCallback (callable $callback)
 Overrides the DeferredUpdates::addCallableUpdate callback This is intended for use while testing and will fail if MW_PHPUNIT_TEST is not defined.
 
 removeWatch (UserIdentity $user, LinkTarget $target)
 
 removeWatchBatchForUser (UserIdentity $user, array $titles)
 
 resetAllNotificationTimestampsForUser (UserIdentity $user, $timestamp=null)
 Schedule a DeferredUpdate that sets all of the "last viewed" timestamps for a given user to the same value.
 
 resetNotificationTimestamp (UserIdentity $user, LinkTarget $title, $force='', $oldid=0)
 
 setNotificationTimestampsForUser (UserIdentity $user, $timestamp, array $targets=[])
 Set the "last viewed" timestamps for certain titles on a user's watchlist.
 
 setStatsdDataFactory (StatsdDataFactoryInterface $stats)
 
 updateNotificationTimestamp (UserIdentity $editor, LinkTarget $target, $timestamp)
 
- Public Member Functions inherited from WatchedItemStoreInterface
 resetAllNotificationTimestampsForUser (UserIdentity $user)
 Reset all watchlist notificaton timestamps for a user using the job queue.
 

Private Member Functions

 cache (WatchedItem $item)
 
 dbCond (UserIdentity $user, LinkTarget $target)
 Return an array of conditions to select or update the appropriate database row.
 
 getCached (UserIdentity $user, LinkTarget $target)
 
 getCacheKey (UserIdentity $user, LinkTarget $target)
 
 getConnectionRef ( $dbIndex)
 
 getNotificationTimestamp (UserIdentity $user, LinkTarget $title, $item, $force, $oldid)
 
 getPageSeenKey (LinkTarget $target)
 
 getPageSeenTimestamps (UserIdentity $user)
 
 getPageSeenTimestampsKey (UserIdentity $user)
 
 getTitleDbKeysGroupedByNamespace (array $titles)
 
 getVisitingWatchersCondition (IDatabase $db, array $targetsWithVisitThresholds)
 Generates condition for the query used in a batch count visiting watchers.
 
 uncache (UserIdentity $user, LinkTarget $target)
 
 uncacheAllItemsForUser (UserIdentity $user)
 
 uncacheLinkTarget (LinkTarget $target)
 
 uncacheTitlesForUser (UserIdentity $user, array $titles)
 
 uncacheUser (UserIdentity $user)
 

Private Attributes

HashBagOStuff $cache
 
array[] $cacheIndex = []
 Looks like $cacheIndex[Namespace ID][Target DB Key][User Id] => 'key' The index is needed so that on mass changes all relevant items can be un-cached.
 
callable null $deferredUpdatesAddCallableUpdateCallback
 
HashBagOStuff $latestUpdateCache
 
ILBFactory $lbFactory
 
LoadBalancer $loadBalancer
 
NamespaceInfo $nsInfo
 
JobQueueGroup $queueGroup
 
ReadOnlyMode $readOnlyMode
 
RevisionLookup $revisionLookup
 
BagOStuff $stash
 
StatsdDataFactoryInterface $stats
 
int $updateRowsPerQuery
 

Additional Inherited Members

- Public Attributes inherited from WatchedItemStoreInterface
const SORT_ASC = 'ASC'
 
const SORT_DESC = 'DESC'
 

Detailed Description

Storage layer class for WatchedItems.

Database interaction & caching TODO caching should be factored out into a CachingWatchedItemStore class

Author
Addshore
Since
1.27

Definition at line 21 of file WatchedItemStore.php.

Constructor & Destructor Documentation

◆ __construct()

WatchedItemStore::__construct ( ILBFactory  $lbFactory,
JobQueueGroup  $queueGroup,
BagOStuff  $stash,
HashBagOStuff  $cache,
ReadOnlyMode  $readOnlyMode,
  $updateRowsPerQuery,
NamespaceInfo  $nsInfo,
RevisionLookup  $revisionLookup 
)
Parameters
ILBFactory$lbFactory
JobQueueGroup$queueGroup
BagOStuff$stash
HashBagOStuff$cache
ReadOnlyMode$readOnlyMode
int$updateRowsPerQuery
NamespaceInfo$nsInfo
RevisionLookup$revisionLookup

Definition at line 101 of file WatchedItemStore.php.

References $cache, $lbFactory, $nsInfo, $queueGroup, $readOnlyMode, $revisionLookup, $stash, $updateRowsPerQuery, cache(), and Wikimedia\Rdbms\ILBFactory\getMainLB().

Member Function Documentation

◆ addWatch()

WatchedItemStore::addWatch ( UserIdentity  $user,
LinkTarget  $target 
)
Since
1.27
Parameters
UserIdentity$user
LinkTarget$target

Implements WatchedItemStoreInterface.

Definition at line 720 of file WatchedItemStore.php.

References addWatchBatchForUser().

◆ addWatchBatchForUser()

WatchedItemStore::addWatchBatchForUser ( UserIdentity  $user,
array  $targets 
)
Since
1.27
Parameters
UserIdentity$user
LinkTarget[]$targets
Returns
bool

Implements WatchedItemStoreInterface.

Definition at line 730 of file WatchedItemStore.php.

References cache(), DB_MASTER, getConnectionRef(), MediaWiki\User\UserIdentity\getId(), MediaWiki\User\UserIdentity\isRegistered(), and uncache().

Referenced by addWatch().

◆ cache()

◆ clearUserWatchedItems()

WatchedItemStore::clearUserWatchedItems ( UserIdentity  $user)

Deletes ALL watched items for the given user when under $updateRowsPerQuery entries exist.

Since
1.30
Parameters
UserIdentity$user
Returns
bool true on success, false when too many items are watched

Implements WatchedItemStoreInterface.

Definition at line 254 of file WatchedItemStore.php.

References countWatchedItems(), DB_MASTER, MediaWiki\User\UserIdentity\getId(), and uncacheAllItemsForUser().

◆ clearUserWatchedItemsUsingJobQueue()

WatchedItemStore::clearUserWatchedItemsUsingJobQueue ( UserIdentity  $user)

Queues a job that will clear the users watchlist using the Job Queue.

Since
1.31
Parameters
UserIdentity$user

Implements WatchedItemStoreInterface.

Definition at line 301 of file WatchedItemStore.php.

References $job, getMaxId(), and ClearUserWatchlistJob\newForUser().

◆ countUnreadNotifications()

WatchedItemStore::countUnreadNotifications ( UserIdentity  $user,
  $unreadLimit = null 
)
Since
1.27
Parameters
UserIdentity$user
int | null$unreadLimit
Returns
int|bool

Implements WatchedItemStoreInterface.

Definition at line 1168 of file WatchedItemStore.php.

References $dbr, DB_REPLICA, getConnectionRef(), and MediaWiki\User\UserIdentity\getId().

◆ countVisitingWatchers()

WatchedItemStore::countVisitingWatchers ( LinkTarget  $target,
  $threshold 
)
Since
1.27
Parameters
LinkTarget$target
string | int$threshold
Returns
int

Implements WatchedItemStoreInterface.

Definition at line 365 of file WatchedItemStore.php.

References $dbr, DB_REPLICA, getConnectionRef(), MediaWiki\Linker\LinkTarget\getDBkey(), and MediaWiki\Linker\LinkTarget\getNamespace().

◆ countVisitingWatchersMultiple()

WatchedItemStore::countVisitingWatchersMultiple ( array  $targetsWithVisitThresholds,
  $minimumWatchers = null 
)
Since
1.27
Parameters
array$targetsWithVisitThresholds
int | null$minimumWatchers
Returns
array

Implements WatchedItemStoreInterface.

Definition at line 468 of file WatchedItemStore.php.

References $dbr, $res, DB_REPLICA, getConnectionRef(), and getVisitingWatchersCondition().

◆ countWatchedItems()

WatchedItemStore::countWatchedItems ( UserIdentity  $user)
Since
1.31
Parameters
UserIdentity$user
Returns
int

Implements WatchedItemStoreInterface.

Definition at line 325 of file WatchedItemStore.php.

References $dbr, DB_REPLICA, getConnectionRef(), and MediaWiki\User\UserIdentity\getId().

Referenced by clearUserWatchedItems().

◆ countWatchers()

WatchedItemStore::countWatchers ( LinkTarget  $target)
Since
1.27
Parameters
LinkTarget$target
Returns
int

Implements WatchedItemStoreInterface.

Definition at line 344 of file WatchedItemStore.php.

References $dbr, DB_REPLICA, getConnectionRef(), MediaWiki\Linker\LinkTarget\getDBkey(), and MediaWiki\Linker\LinkTarget\getNamespace().

◆ countWatchersMultiple()

WatchedItemStore::countWatchersMultiple ( array  $targets,
array  $options = [] 
)
Since
1.27
Parameters
LinkTarget[]$targets
array$options
Returns
array

Implements WatchedItemStoreInterface.

Definition at line 432 of file WatchedItemStore.php.

References $dbr, $res, DB_REPLICA, and getConnectionRef().

◆ dbCond()

WatchedItemStore::dbCond ( UserIdentity  $user,
LinkTarget  $target 
)
private

Return an array of conditions to select or update the appropriate database row.

Parameters
UserIdentity$user
LinkTarget$target
Returns
array

Definition at line 227 of file WatchedItemStore.php.

References MediaWiki\Linker\LinkTarget\getDBkey(), MediaWiki\User\UserIdentity\getId(), and MediaWiki\Linker\LinkTarget\getNamespace().

Referenced by loadWatchedItem().

◆ duplicateAllAssociatedEntries()

WatchedItemStore::duplicateAllAssociatedEntries ( LinkTarget  $oldTarget,
LinkTarget  $newTarget 
)
Since
1.27
Parameters
LinkTarget$oldTarget
LinkTarget$newTarget

Implements WatchedItemStoreInterface.

Definition at line 1200 of file WatchedItemStore.php.

References duplicateEntry().

◆ duplicateEntry()

WatchedItemStore::duplicateEntry ( LinkTarget  $oldTarget,
LinkTarget  $newTarget 
)
Since
1.27
Parameters
LinkTarget$oldTarget
LinkTarget$newTarget

Implements WatchedItemStoreInterface.

Definition at line 1217 of file WatchedItemStore.php.

References DB_MASTER, getConnectionRef(), MediaWiki\Linker\LinkTarget\getDBkey(), and MediaWiki\Linker\LinkTarget\getNamespace().

Referenced by duplicateAllAssociatedEntries().

◆ getCached()

WatchedItemStore::getCached ( UserIdentity  $user,
LinkTarget  $target 
)
private
Parameters
UserIdentity$user
LinkTarget$target
Returns
WatchedItem|false

Definition at line 214 of file WatchedItemStore.php.

References cache(), and getCacheKey().

Referenced by getNotificationTimestampsBatch(), and getWatchedItem().

◆ getCacheKey()

WatchedItemStore::getCacheKey ( UserIdentity  $user,
LinkTarget  $target 
)
private

◆ getConnectionRef()

◆ getLatestNotificationTimestamp()

WatchedItemStore::getLatestNotificationTimestamp (   $timestamp,
UserIdentity  $user,
LinkTarget  $target 
)

Convert $timestamp to TS_MW or return null if the page was visited since then by $user.

Use this only on single-user methods (having higher read-after-write expectations) and not in places involving arbitrary batches of different users

Usage of this method should be limited to WatchedItem* classes

Parameters
string | null$timestampValue of wl_notificationtimestamp from the DB
UserIdentity$user
LinkTarget$target
Returns
string|null TS_MW timestamp of first unseen revision or null if there isn't one

Implements WatchedItemStoreInterface.

Definition at line 861 of file WatchedItemStore.php.

References getPageSeenTimestamps(), and wfTimestampOrNull().

Referenced by getNotificationTimestampsBatch(), getWatchedItemsForUser(), and loadWatchedItem().

◆ getMaxId()

WatchedItemStore::getMaxId ( )
Since
1.31
Returns
int The maximum current wl_id

Definition at line 310 of file WatchedItemStore.php.

References $dbr, DB_REPLICA, and getConnectionRef().

Referenced by clearUserWatchedItemsUsingJobQueue().

◆ getNotificationTimestamp()

WatchedItemStore::getNotificationTimestamp ( UserIdentity  $user,
LinkTarget  $title,
  $item,
  $force,
  $oldid 
)
private
Parameters
UserIdentity$user
LinkTarget$title
WatchedItem$item
bool$force
int | bool$oldidThe ID of the last revision that the user viewed
Returns
bool|string|null

Definition at line 1109 of file WatchedItemStore.php.

References $title, getNotificationTimestamp(), and loadWatchedItem().

Referenced by getNotificationTimestamp().

◆ getNotificationTimestampsBatch()

WatchedItemStore::getNotificationTimestampsBatch ( UserIdentity  $user,
array  $targets 
)
Since
1.27
Parameters
UserIdentity$user
LinkTarget[]$targets
Returns
array

Implements WatchedItemStoreInterface.

Definition at line 667 of file WatchedItemStore.php.

References $dbr, $res, DB_REPLICA, getCached(), getConnectionRef(), MediaWiki\User\UserIdentity\getId(), getLatestNotificationTimestamp(), and MediaWiki\User\UserIdentity\isRegistered().

◆ getPageSeenKey()

WatchedItemStore::getPageSeenKey ( LinkTarget  $target)
private
Parameters
LinkTarget$target
Returns
string

Definition at line 1097 of file WatchedItemStore.php.

Referenced by resetNotificationTimestamp().

◆ getPageSeenTimestamps()

WatchedItemStore::getPageSeenTimestamps ( UserIdentity  $user)
private
Parameters
UserIdentity$user
Returns
MapCacheLRU|null The map contains prefixed title keys and TS_MW values

Definition at line 1069 of file WatchedItemStore.php.

References getPageSeenTimestampsKey().

Referenced by getLatestNotificationTimestamp().

◆ getPageSeenTimestampsKey()

WatchedItemStore::getPageSeenTimestampsKey ( UserIdentity  $user)
private
Parameters
UserIdentity$user
Returns
string

Definition at line 1085 of file WatchedItemStore.php.

References MediaWiki\User\UserIdentity\getId().

Referenced by getPageSeenTimestamps(), resetNotificationTimestamp(), and uncacheUser().

◆ getTitleDbKeysGroupedByNamespace()

WatchedItemStore::getTitleDbKeysGroupedByNamespace ( array  $titles)
private
Parameters
LinkTarget[]$titles
Returns
array

Definition at line 1262 of file WatchedItemStore.php.

References $title.

Referenced by removeWatchBatchForUser(), and setNotificationTimestampsForUser().

◆ getVisitingWatchersCondition()

WatchedItemStore::getVisitingWatchersCondition ( IDatabase  $db,
array  $targetsWithVisitThresholds 
)
private

Generates condition for the query used in a batch count visiting watchers.

Parameters
IDatabase$db
array$targetsWithVisitThresholdsarray of pairs (LinkTarget, last visit threshold)
Returns
string

Definition at line 513 of file WatchedItemStore.php.

References Wikimedia\Rdbms\IDatabase\addQuotes(), LIST_AND, LIST_OR, Wikimedia\Rdbms\IDatabase\makeList(), and Wikimedia\Rdbms\IDatabase\timestamp().

Referenced by countVisitingWatchersMultiple().

◆ getWatchedItem()

WatchedItemStore::getWatchedItem ( UserIdentity  $user,
LinkTarget  $target 
)
Since
1.27
Parameters
UserIdentity$user
LinkTarget$target
Returns
WatchedItem|false

Implements WatchedItemStoreInterface.

Definition at line 556 of file WatchedItemStore.php.

References getCached(), MediaWiki\User\UserIdentity\isRegistered(), and loadWatchedItem().

Referenced by isWatched().

◆ getWatchedItemsForUser()

WatchedItemStore::getWatchedItemsForUser ( UserIdentity  $user,
array  $options = [] 
)
Since
1.27
Parameters
UserIdentity$user
array$options
Returns
WatchedItem[]

Implements WatchedItemStoreInterface.

Definition at line 611 of file WatchedItemStore.php.

References $res, DB_MASTER, DB_REPLICA, getConnectionRef(), MediaWiki\User\UserIdentity\getId(), and getLatestNotificationTimestamp().

◆ isWatched()

WatchedItemStore::isWatched ( UserIdentity  $user,
LinkTarget  $target 
)
Since
1.27
Parameters
UserIdentity$user
LinkTarget$target
Returns
bool

Implements WatchedItemStoreInterface.

Definition at line 657 of file WatchedItemStore.php.

References getWatchedItem().

◆ loadWatchedItem()

WatchedItemStore::loadWatchedItem ( UserIdentity  $user,
LinkTarget  $target 
)
Since
1.27
Parameters
UserIdentity$user
LinkTarget$target
Returns
WatchedItem|false

Implements WatchedItemStoreInterface.

Definition at line 576 of file WatchedItemStore.php.

References $dbr, cache(), DB_REPLICA, dbCond(), getConnectionRef(), getLatestNotificationTimestamp(), and MediaWiki\User\UserIdentity\isRegistered().

Referenced by getNotificationTimestamp(), getWatchedItem(), and resetNotificationTimestamp().

◆ overrideDeferredUpdatesAddCallableUpdateCallback()

WatchedItemStore::overrideDeferredUpdatesAddCallableUpdateCallback ( callable  $callback)

Overrides the DeferredUpdates::addCallableUpdate callback This is intended for use while testing and will fail if MW_PHPUNIT_TEST is not defined.

Parameters
callable$callback
See also
DeferredUpdates::addCallableUpdate for callback signiture
Returns
ScopedCallback to reset the overridden value
Exceptions
MWException

Definition at line 145 of file WatchedItemStore.php.

References $deferredUpdatesAddCallableUpdateCallback.

◆ removeWatch()

WatchedItemStore::removeWatch ( UserIdentity  $user,
LinkTarget  $target 
)
Since
1.27
Parameters
UserIdentity$user
LinkTarget$target
Returns
bool

Implements WatchedItemStoreInterface.

Definition at line 790 of file WatchedItemStore.php.

References removeWatchBatchForUser().

◆ removeWatchBatchForUser()

WatchedItemStore::removeWatchBatchForUser ( UserIdentity  $user,
array  $titles 
)
Parameters
UserIdentity$user
LinkTarget[]$titles
Returns
bool

Implements WatchedItemStoreInterface.

Definition at line 388 of file WatchedItemStore.php.

References DB_MASTER, getConnectionRef(), MediaWiki\User\UserIdentity\getId(), getTitleDbKeysGroupedByNamespace(), MediaWiki\User\UserIdentity\isRegistered(), and uncacheTitlesForUser().

Referenced by removeWatch().

◆ resetAllNotificationTimestampsForUser()

WatchedItemStore::resetAllNotificationTimestampsForUser ( UserIdentity  $user,
  $timestamp = null 
)

Schedule a DeferredUpdate that sets all of the "last viewed" timestamps for a given user to the same value.

Parameters
UserIdentity$user
string | int | null$timestampValue to set all timestamps to, null to clear them

Definition at line 887 of file WatchedItemStore.php.

References $job, MediaWiki\User\UserIdentity\getId(), and MediaWiki\User\UserIdentity\isRegistered().

Referenced by setNotificationTimestampsForUser().

◆ resetNotificationTimestamp()

WatchedItemStore::resetNotificationTimestamp ( UserIdentity  $user,
LinkTarget  $title,
  $force = '',
  $oldid = 0 
)
Since
1.27
Parameters
UserIdentity$user
LinkTarget$title
string$force
int$oldid
Returns
bool

Implements WatchedItemStoreInterface.

Definition at line 975 of file WatchedItemStore.php.

References $cache, $job, $title, MediaWiki\User\UserIdentity\getId(), getPageSeenKey(), getPageSeenTimestampsKey(), MediaWiki\User\UserIdentity\isRegistered(), loadWatchedItem(), User\newFromId(), uncache(), and wfTimestamp().

◆ setNotificationTimestampsForUser()

WatchedItemStore::setNotificationTimestampsForUser ( UserIdentity  $user,
  $timestamp,
array  $targets = [] 
)

Set the "last viewed" timestamps for certain titles on a user's watchlist.

If the $targets parameter is omitted or set to [], this method simply wraps resetAllNotificationTimestampsForUser(), and in that case you should instead call that method directly; support for omitting $targets is for backwards compatibility.

If $targets is omitted or set to [], timestamps will be updated for every title on the user's watchlist, and this will be done through a DeferredUpdate. If $targets is a non-empty array, only the specified titles will be updated, and this will be done immediately (not deferred).

Since
1.27
Parameters
UserIdentity$user
string | int$timestampValue to set the "last viewed" timestamp to (null to clear)
LinkTarget[]$targetsTitles to set the timestamp for; [] means the entire watchlist
Returns
bool

Implements WatchedItemStoreInterface.

Definition at line 811 of file WatchedItemStore.php.

References DB_MASTER, getConnectionRef(), MediaWiki\User\UserIdentity\getId(), getTitleDbKeysGroupedByNamespace(), MediaWiki\User\UserIdentity\isRegistered(), resetAllNotificationTimestampsForUser(), and uncacheUser().

◆ setStatsdDataFactory()

WatchedItemStore::setStatsdDataFactory ( StatsdDataFactoryInterface  $stats)
Parameters
StatsdDataFactoryInterface$stats

Implements StatsdAwareInterface.

Definition at line 130 of file WatchedItemStore.php.

References $stats.

◆ uncache()

◆ uncacheAllItemsForUser()

WatchedItemStore::uncacheAllItemsForUser ( UserIdentity  $user)
private

Definition at line 270 of file WatchedItemStore.php.

References cache(), and MediaWiki\User\UserIdentity\getId().

Referenced by clearUserWatchedItems().

◆ uncacheLinkTarget()

WatchedItemStore::uncacheLinkTarget ( LinkTarget  $target)
private

◆ uncacheTitlesForUser()

WatchedItemStore::uncacheTitlesForUser ( UserIdentity  $user,
array  $titles 
)
private
Parameters
UserIdentity$user
LinkTarget[]$titles

Definition at line 1275 of file WatchedItemStore.php.

References $title, and uncache().

Referenced by removeWatchBatchForUser().

◆ uncacheUser()

WatchedItemStore::uncacheUser ( UserIdentity  $user)
private

◆ updateNotificationTimestamp()

WatchedItemStore::updateNotificationTimestamp ( UserIdentity  $editor,
LinkTarget  $target,
  $timestamp 
)
Since
1.27
Parameters
UserIdentity$editor
LinkTarget$target
string | int$timestamp
Returns
int[]

Implements WatchedItemStoreInterface.

Definition at line 915 of file WatchedItemStore.php.

References DB_MASTER, getConnectionRef(), MediaWiki\Linker\LinkTarget\getDBkey(), MediaWiki\User\UserIdentity\getId(), MediaWiki\Linker\LinkTarget\getNamespace(), and uncacheLinkTarget().

Member Data Documentation

◆ $cache

HashBagOStuff WatchedItemStore::$cache
private

Definition at line 51 of file WatchedItemStore.php.

Referenced by __construct(), and resetNotificationTimestamp().

◆ $cacheIndex

array [] WatchedItemStore::$cacheIndex = []
private

Looks like $cacheIndex[Namespace ID][Target DB Key][User Id] => 'key' The index is needed so that on mass changes all relevant items can be un-cached.

For example: Clearing a users watchlist of all items or updating notification timestamps for all users watching a single target.

Definition at line 64 of file WatchedItemStore.php.

◆ $deferredUpdatesAddCallableUpdateCallback

callable null WatchedItemStore::$deferredUpdatesAddCallableUpdateCallback
private

◆ $latestUpdateCache

HashBagOStuff WatchedItemStore::$latestUpdateCache
private

Definition at line 56 of file WatchedItemStore.php.

◆ $lbFactory

ILBFactory WatchedItemStore::$lbFactory
private

Definition at line 26 of file WatchedItemStore.php.

Referenced by __construct().

◆ $loadBalancer

LoadBalancer WatchedItemStore::$loadBalancer
private

Definition at line 31 of file WatchedItemStore.php.

◆ $nsInfo

NamespaceInfo WatchedItemStore::$nsInfo
private

Definition at line 79 of file WatchedItemStore.php.

Referenced by __construct().

◆ $queueGroup

JobQueueGroup WatchedItemStore::$queueGroup
private

Definition at line 36 of file WatchedItemStore.php.

Referenced by __construct().

◆ $readOnlyMode

ReadOnlyMode WatchedItemStore::$readOnlyMode
private

Definition at line 46 of file WatchedItemStore.php.

Referenced by __construct().

◆ $revisionLookup

RevisionLookup WatchedItemStore::$revisionLookup
private

Definition at line 84 of file WatchedItemStore.php.

Referenced by __construct().

◆ $stash

BagOStuff WatchedItemStore::$stash
private

Definition at line 41 of file WatchedItemStore.php.

Referenced by __construct().

◆ $stats

StatsdDataFactoryInterface WatchedItemStore::$stats
private

Definition at line 89 of file WatchedItemStore.php.

Referenced by setStatsdDataFactory().

◆ $updateRowsPerQuery

int WatchedItemStore::$updateRowsPerQuery
private

Definition at line 74 of file WatchedItemStore.php.

Referenced by __construct().


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