MediaWiki  master
LinkCache Class Reference

Cache for article titles (prefixed DB keys) and ids linked from one source. More...

Inheritance diagram for LinkCache:
Collaboration diagram for LinkCache:

Public Member Functions

 __construct (TitleFormatter $titleFormatter, WANObjectCache $cache, NamespaceInfo $nsInfo, ILoadBalancer $loadBalancer=null)
 
 addBadLinkObj ( $page)
 
 addGoodLinkObj ( $id, $page, $len=-1, $redir=null, $revision=0, $model=null, $lang=null)
 Add information about an existing page to the cache. More...
 
 addGoodLinkObjFromRow ( $page, stdClass $row, int $queryFlags=IDBAccessObject::READ_NORMAL)
 Same as above with better interface. More...
 
 addLinkObj ( $page, int $queryFlags=IDBAccessObject::READ_NORMAL)
 Add a title to the link cache, return the page_id or zero if non-existent. More...
 
 clear ()
 Clears cache. More...
 
 clearBadLink ( $page)
 
 clearLink ( $page)
 
 getGoodLinkFieldObj ( $page, string $field)
 Get a field of a page from the cache. More...
 
 getGoodLinkID ( $page)
 Returns the ID of the given page, if information about this page has been cached. More...
 
 getGoodLinkRow (int $ns, string $dbkey, callable $fetchCallback=null, int $queryFlags=IDBAccessObject::READ_NORMAL)
 Returns the row for the page if the page exists (subject to race conditions). More...
 
 getMutableCacheKeys (WANObjectCache $cache, $page)
 
 invalidateTitle ( $page)
 Purge the persistent link cache for a title. More...
 
 isBadLink ( $page)
 Returns true if the fact that this page does not exist had been added to the cache. More...
 
 setLogger (LoggerInterface $logger)
 

Static Public Member Functions

static getSelectFields ()
 Fields that LinkCache needs to select. More...
 

Detailed Description

Cache for article titles (prefixed DB keys) and ids linked from one source.

Definition at line 42 of file LinkCache.php.

Constructor & Destructor Documentation

◆ __construct()

LinkCache::__construct ( TitleFormatter  $titleFormatter,
WANObjectCache  $cache,
NamespaceInfo  $nsInfo,
ILoadBalancer  $loadBalancer = null 
)
Parameters
TitleFormatter$titleFormatter
WANObjectCache$cache
NamespaceInfo$nsInfo
ILoadBalancer | null$loadBalancerUse null when no database is set up, for example on installation

Definition at line 74 of file LinkCache.php.

References $cache.

Member Function Documentation

◆ addBadLinkObj()

LinkCache::addBadLinkObj (   $page)
Parameters
LinkTarget | PageReference | array$pageThe page to set cached info for. Can be given as an object or an associative array containing the page_namespace and page_title fields. In MediaWiki 1.36 and earlier, only LinkTarget was accepted.

Definition at line 314 of file LinkCache.php.

References isBadLink().

◆ addGoodLinkObj()

LinkCache::addGoodLinkObj (   $id,
  $page,
  $len = -1,
  $redir = null,
  $revision = 0,
  $model = null,
  $lang = null 
)

Add information about an existing page to the cache.

Deprecated:
since 1.37, use addGoodLinkObjFromRow() instead. PHPUnit tests must use LinkCacheTestTrait::addGoodLinkObject().
Parameters
int$idPage's ID
LinkTarget | PageReference$pageThe page to set cached info for. In MediaWiki 1.36 and earlier, only LinkTarget was accepted.
int$lenText's length
int | null$redirWhether the page is a redirect
int$revisionLatest revision's ID
string | null$modelLatest revision's content model ID
string | null$langLanguage code of the page, if not the content language

Definition at line 257 of file LinkCache.php.

References $lang, addGoodLinkObjFromRow(), and wfDeprecated().

◆ addGoodLinkObjFromRow()

LinkCache::addGoodLinkObjFromRow (   $page,
stdClass  $row,
int  $queryFlags = IDBAccessObject::READ_NORMAL 
)

Same as above with better interface.

Parameters
LinkTarget | PageReference | array$pageThe page to set cached info for. Can be given as an object or an associative array containing the page_namespace and page_title fields. In MediaWiki 1.36 and earlier, only LinkTarget was accepted.
stdClass$rowObject which has all fields returned by getSelectFields().
int$queryFlagsThe query flags used to retrieve the row, IDBAccessObject::READ_XXX
Since
1.19

Definition at line 288 of file LinkCache.php.

Referenced by addGoodLinkObj().

◆ addLinkObj()

LinkCache::addLinkObj (   $page,
int  $queryFlags = IDBAccessObject::READ_NORMAL 
)

Add a title to the link cache, return the page_id or zero if non-existent.

This causes the link to be looked up in the database if it is not yet cached.

Deprecated:
since 1.37, use PageStore::getPageForLink() instead.
Parameters
LinkTarget | PageReference | array$pageThe page to load. Can be given as an object or an associative array containing the page_namespace and page_title fields. In MediaWiki 1.36 and earlier, only LinkTarget was accepted.
int$queryFlagsIDBAccessObject::READ_XXX
Returns
int Page ID or zero

Definition at line 390 of file LinkCache.php.

References getGoodLinkRow().

◆ clear()

LinkCache::clear ( )

Clears cache.

Definition at line 602 of file LinkCache.php.

◆ clearBadLink()

LinkCache::clearBadLink (   $page)
Parameters
LinkTarget | PageReference | array | string$pageThe page to clear cached info for, as an object, an array containing the page_namespace and page_title fields, or a prefixed DB key. In MediaWiki 1.36 and earlier, only a string was accepted. In MediaWiki 1.36 and earlier, only a string was accepted.

Definition at line 328 of file LinkCache.php.

◆ clearLink()

LinkCache::clearLink (   $page)
Parameters
LinkTarget | PageReference | array$pageThe page to clear cached info for. Can be given as an object or an associative array containing the page_namespace and page_title fields. In MediaWiki 1.36 and earlier, only LinkTarget was accepted.

Definition at line 342 of file LinkCache.php.

◆ getGoodLinkFieldObj()

LinkCache::getGoodLinkFieldObj (   $page,
string  $field 
)

Get a field of a page from the cache.

If this link is not a cached good title, it will return NULL.

Parameters
LinkTarget | PageReference | array$pageThe page to get cached info for. Can be given as an object or an associative array containing the page_namespace and page_title fields. In MediaWiki 1.36 and earlier, only LinkTarget was accepted.
string$field( 'id', 'length', 'redirect', 'revision', 'model', 'lang' )
Returns
string|int|null The field value, or null if the page was not cached or does not exist or is not a proper page (e.g. a special page or interwiki link).

Definition at line 186 of file LinkCache.php.

References isBadLink().

◆ getGoodLinkID()

LinkCache::getGoodLinkID (   $page)

Returns the ID of the given page, if information about this page has been cached.

Parameters
LinkTarget | PageReference | array | string$pageThe page to get the ID for, as an object, an array containing the page_namespace and page_title fields, or a prefixed DB key. In MediaWiki 1.36 and earlier, only a string was accepted.
Returns
int Page ID, or zero if the page was not cached or does not exist or is not a proper page (e.g. a special page or an interwiki link).

Definition at line 162 of file LinkCache.php.

◆ getGoodLinkRow()

LinkCache::getGoodLinkRow ( int  $ns,
string  $dbkey,
callable  $fetchCallback = null,
int  $queryFlags = IDBAccessObject::READ_NORMAL 
)

Returns the row for the page if the page exists (subject to race conditions).

The row will be returned from local cache or WAN cache if possible, or it will be looked up using the callback provided.

Parameters
int$ns
string$dbkey
callable | null$fetchCallbackA callback that will retrieve the link row with the signature ( IDatabase $db, int $ns, string $dbkey, array $queryOptions ): ?stdObj.
int$queryFlagsIDBAccessObject::READ_XXX
Returns
stdClass|null
Access: internal
for use by PageStore. Other code should use a PageLookup instead.

Definition at line 481 of file LinkCache.php.

Referenced by addLinkObj().

◆ getMutableCacheKeys()

LinkCache::getMutableCacheKeys ( WANObjectCache  $cache,
  $page 
)
Parameters
WANObjectCache$cache
LinkTarget | Pagereference$pageIn MediaWiki 1.36 and earlier, only LinkTarget was accepted.
Returns
string[]
Since
1.28

Definition at line 526 of file LinkCache.php.

References $cache.

◆ getSelectFields()

◆ invalidateTitle()

LinkCache::invalidateTitle (   $page)

Purge the persistent link cache for a title.

Parameters
LinkTarget | PageReference$pageIn MediaWiki 1.36 and earlier, only LinkTarget was accepted.
Since
1.28

Definition at line 588 of file LinkCache.php.

References $cache.

◆ isBadLink()

LinkCache::isBadLink (   $page)

Returns true if the fact that this page does not exist had been added to the cache.

Parameters
LinkTarget | PageReference | array | string$pageThe page to get cached info for, as an object, an array containing the page_namespace and page_title fields, or a prefixed DB key. In MediaWiki 1.36 and earlier, only a string was accepted. In MediaWiki 1.36 and earlier, only a string was accepted.
Returns
bool True if the page is known to not exist.

Definition at line 233 of file LinkCache.php.

Referenced by addBadLinkObj(), and getGoodLinkFieldObj().

◆ setLogger()

LinkCache::setLogger ( LoggerInterface  $logger)
Parameters
LoggerInterface$logger

Definition at line 92 of file LinkCache.php.


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