MediaWiki master
MediaWiki\Page\LinkBatch Class Reference

Batch query for page metadata and feed to LinkCache. More...

Public Member Functions

 __construct (iterable $arr, LinkCache $linkCache, TitleFormatter $titleFormatter, Language $contentLanguage, GenderCache $genderCache, IConnectionProvider $dbProvider, LinksMigration $linksMigration, TempUserDetailsLookup $tempUserDetailsLookup, LoggerInterface $logger)
 
 add ( $ns, $dbkey)
 
 addObj ( $link)
 
 addResultToCache ( $cache, $res)
 Add a database result with page rows to the LinkCache.
 
 addUser (UserIdentity $user)
 Add user page and user talk page for a given user to this batch.
 
 constructSet ( $prefix, $db)
 Construct a WHERE clause which will match all the given titles.
 
 doGenderQuery ()
 Execute and cache {{GENDER:...}} information for user pages in this LinkBatch.
 
 doQuery ()
 Perform the existence test query.
 
 execute ()
 Do the query and add the results to the LinkCache.
 
 getPageIdentities ()
 Do the query, add the results to the LinkCache object, and return ProperPageIdentity instances corresponding to the pages in the batch.
 
 getSize ()
 Return the size of the batch.
 
 isEmpty ()
 Whether no pages have been added.
 
 setArray ( $array)
 Replace the link batch with a given 2-d array.
 
 setCaller ( $caller)
 Set the function name to attribute database queries to, in debug logs.
 

Public Attributes

array< int, array< string, mixed > > $data = []
 2-d array, first index namespace, second index dbkey, value arbitrary
 

Protected Member Functions

 executeInto ( $cache)
 Do the query and add the results to a given LinkCache object.
 

Protected Attributes

string null $caller
 For debugging which method is using this class.
 

Detailed Description

Batch query for page metadata and feed to LinkCache.

Use via MediaWikiServices::getLinkBatchFactory()->newLinkBatch(), and then call LinkBatch::execute().

See also
docs/LinkCache.md
MediaWiki\Page\LinkCache
Since
1.6

Definition at line 36 of file LinkBatch.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Page\LinkBatch::__construct ( iterable $arr,
LinkCache $linkCache,
TitleFormatter $titleFormatter,
Language $contentLanguage,
GenderCache $genderCache,
IConnectionProvider $dbProvider,
LinksMigration $linksMigration,
TempUserDetailsLookup $tempUserDetailsLookup,
LoggerInterface $logger )
See also
\MediaWiki\Page\LinkBatchFactory
Access: internal
Parameters
iterable<LinkTarget>|iterable<PageReference>$arr Initial titles to be added to the batch
LinkCache$linkCache
TitleFormatter$titleFormatter
Language$contentLanguage
GenderCache$genderCache
IConnectionProvider$dbProvider
LinksMigration$linksMigration
TempUserDetailsLookup$tempUserDetailsLookup
LoggerInterface$logger

Definition at line 104 of file LinkBatch.php.

References MediaWiki\Page\LinkBatch\addObj().

Member Function Documentation

◆ add()

MediaWiki\Page\LinkBatch::add ( $ns,
$dbkey )
Parameters
int$ns
string$dbkey

Definition at line 186 of file LinkBatch.php.

◆ addObj()

MediaWiki\Page\LinkBatch::addObj ( $link)
Parameters
LinkTarget | PageReference$link

Definition at line 160 of file LinkBatch.php.

References MediaWiki\Linker\LinkTarget\isExternal().

Referenced by MediaWiki\Page\LinkBatch\__construct().

◆ addResultToCache()

MediaWiki\Page\LinkBatch::addResultToCache ( $cache,
$res )

Add a database result with page rows to the LinkCache.

As normal, titles will go into the static Title cache field. This function also stores extra fields of the title used for link parsing to avoid extra DB queries.

Parameters
LinkCache$cache
IResultWrapper$res
Returns
int[] Remaining unknown titles from PDBK to ID

Definition at line 277 of file LinkBatch.php.

◆ addUser()

MediaWiki\Page\LinkBatch::addUser ( UserIdentity $user)

Add user page and user talk page for a given user to this batch.

Calling execute will also prefetch the expiration status of temporary accounts added this way, which is needed for the efficient rendering of user links via UserLinkRenderer.

Since
1.44

Definition at line 150 of file LinkBatch.php.

◆ constructSet()

MediaWiki\Page\LinkBatch::constructSet ( $prefix,
$db )

Construct a WHERE clause which will match all the given titles.

It is the caller's responsibility to only call this if the LinkBatch is not empty, because there is no safe way to represent a SQL conditional for the empty set.

Parameters
string$prefixThe appropriate table's field name prefix ('page', 'pl', etc)
ISQLPlatform$dbDB object to use
Returns
string String with SQL where clause fragment

Definition at line 390 of file LinkBatch.php.

◆ doGenderQuery()

MediaWiki\Page\LinkBatch::doGenderQuery ( )

Execute and cache {{GENDER:...}} information for user pages in this LinkBatch.

Returns
bool Whether the query was successful

Definition at line 369 of file LinkBatch.php.

◆ doQuery()

MediaWiki\Page\LinkBatch::doQuery ( )

Perform the existence test query.

Returns
IResultWrapper|false Result wrapper with page_id fields

Definition at line 344 of file LinkBatch.php.

◆ execute()

MediaWiki\Page\LinkBatch::execute ( )

Do the query and add the results to the LinkCache.

Returns
int[] Remaining unknown titles from PDBK to ID

Definition at line 228 of file LinkBatch.php.

◆ executeInto()

MediaWiki\Page\LinkBatch::executeInto ( $cache)
protected

Do the query and add the results to a given LinkCache object.

Parameters
LinkCache$cache
Returns
int[] Remaining unknown titles from PDBK to ID

Definition at line 253 of file LinkBatch.php.

◆ getPageIdentities()

MediaWiki\Page\LinkBatch::getPageIdentities ( )

Do the query, add the results to the LinkCache object, and return ProperPageIdentity instances corresponding to the pages in the batch.

Since
1.37
Returns
ProperPageIdentity[] A list of ProperPageIdentities

Definition at line 239 of file LinkBatch.php.

◆ getSize()

MediaWiki\Page\LinkBatch::getSize ( )

Return the size of the batch.

Returns
int

Definition at line 219 of file LinkBatch.php.

◆ isEmpty()

MediaWiki\Page\LinkBatch::isEmpty ( )

Whether no pages have been added.

Returns
bool

Definition at line 210 of file LinkBatch.php.

◆ setArray()

MediaWiki\Page\LinkBatch::setArray ( $array)

Replace the link batch with a given 2-d array.

First key is the namespace, second is the DB key, value arbitrary

Parameters
array<int,array<string,mixed>>$array

Definition at line 201 of file LinkBatch.php.

◆ setCaller()

MediaWiki\Page\LinkBatch::setCaller ( $caller)

Set the function name to attribute database queries to, in debug logs.

See also
Wikimedia\Rdbms\SelectQueryBuilder::caller
Since
1.17
Parameters
string$caller
Returns
self (since 1.32)

Definition at line 137 of file LinkBatch.php.

Member Data Documentation

◆ $caller

string null MediaWiki\Page\LinkBatch::$caller
protected

For debugging which method is using this class.

Definition at line 55 of file LinkBatch.php.

◆ $data

array<int,array<string,mixed> > MediaWiki\Page\LinkBatch::$data = []

2-d array, first index namespace, second index dbkey, value arbitrary

Definition at line 40 of file LinkBatch.php.


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