MediaWiki
1.28.0
|
Class the manages updates of *_link tables as well as similar extension-managed tables. More...
Public Member Functions | |
__construct (Title $title, ParserOutput $parserOutput, $recursive=true) | |
Constructor. More... | |
doUpdate () | |
Update link tables with outgoing links from an updated article. More... | |
getAddedLinks () | |
Fetch page links added by this LinksUpdate. More... | |
getAddedProperties () | |
Fetch page properties added by this LinksUpdate. More... | |
getAsJobSpecification () | |
getImages () | |
Return the list of images used as generated by the parser. More... | |
getParserOutput () | |
Returns parser output. More... | |
getPropertyDeletions ($existing) | |
Get array of properties which should be deleted. More... | |
getPropertyInsertions ($existing=[]) | |
Get an array of page property insertions. More... | |
getRemovedLinks () | |
Fetch page links removed by this LinksUpdate. More... | |
getRemovedProperties () | |
Fetch page properties removed by this LinksUpdate. More... | |
getRevision () | |
getTitle () | |
Return the title object of the page being updated. More... | |
getTriggeringUser () | |
invalidateCategories ($cats) | |
invalidateImageDescriptions ($images) | |
setRevision (Revision $revision) | |
Set the revision corresponding to this LinksUpdate. More... | |
setTriggeringUser (User $user) | |
Set the User who triggered this LinksUpdate. More... | |
updateCategoryCounts ($added, $deleted) | |
Update all the appropriate counts in the category table. More... | |
Public Member Functions inherited from DataUpdate | |
__construct () | |
setTransactionTicket ($ticket) | |
Static Public Member Functions | |
static | acquirePageLock (IDatabase $dbw, $pageId, $why= 'atomicity') |
Acquire a lock for performing link table updates for a page on a DB. More... | |
static | queueRecursiveJobsForTable (Title $title, $table) |
Queue a RefreshLinks job for any table. More... | |
Static Public Member Functions inherited from DataUpdate | |
static | runUpdates (array $updates) |
Convenience method, calls doUpdate() on every DataUpdate in the array. More... | |
Public Attributes | |
array | $mCategories |
Map of category names to sort keys. More... | |
array | $mExternals |
URLs of external links, array key only. More... | |
int | $mId |
Page ID of the article linked from. More... | |
array | $mImages |
DB keys of the images used, in the array key only. More... | |
array | $mInterlangs |
Map of language codes to titles. More... | |
array | $mInterwikis |
2-D map of (prefix => DBK => 1) More... | |
array | $mLinks |
Map of title strings to IDs for the links in the document. More... | |
ParserOutput | $mParserOutput |
array | $mProperties |
Map of arbitrary name to value. More... | |
bool | $mRecursive |
Whether to queue jobs for recursive updates. More... | |
array | $mTemplates |
Map of title strings to IDs for the template references, including broken ones. More... | |
Title | $mTitle |
Title object of the article linked from. More... | |
Protected Member Functions | |
doIncrementalUpdate () | |
queueRecursiveJobs () | |
Queue recursive jobs for this page. More... | |
Private Member Functions | |
getCategoryDeletions ($existing) | |
Given an array of existing categories, returns those categories which are not in $this and thus should be deleted. More... | |
getCategoryInsertions ($existing=[]) | |
Get an array of category insertions. More... | |
getDB () | |
getExistingCategories () | |
Get an array of existing categories, with the name in the key and sort key in the value. More... | |
getExistingExternals () | |
Get an array of existing external links, URLs in the keys. More... | |
getExistingImages () | |
Get an array of existing images, image names in the keys. More... | |
getExistingInterlangs () | |
Get an array of existing interlanguage links, with the language code in the key and the title in the value. More... | |
getExistingInterwikis () | |
Get an array of existing inline interwiki links, as a 2-D array. More... | |
getExistingLinks () | |
Get an array of existing links, as a 2-D array. More... | |
getExistingProperties () | |
Get an array of existing categories, with the name in the key and sort key in the value. More... | |
getExistingTemplates () | |
Get an array of existing templates, as a 2-D array. More... | |
getExternalDeletions ($existing) | |
Given an array of existing external links, returns those links which are not in $this and thus should be deleted. More... | |
getExternalInsertions ($existing=[]) | |
Get an array of externallinks insertions. More... | |
getImageDeletions ($existing) | |
Given an array of existing images, returns those images which are not in $this and thus should be deleted. More... | |
getImageInsertions ($existing=[]) | |
Get an array of image insertions Skips the names specified in $existing. More... | |
getInterlangDeletions ($existing) | |
Given an array of existing interlanguage links, returns those links which are not in $this and thus should be deleted. More... | |
getInterlangInsertions ($existing=[]) | |
Get an array of interlanguage link insertions. More... | |
getInterwikiDeletions ($existing) | |
Given an array of existing interwiki links, returns those links which are not in $this and thus should be deleted. More... | |
getInterwikiInsertions ($existing=[]) | |
Get an array of interwiki insertions for passing to the DB Skips the titles specified by the 2-D array $existing. More... | |
getLinkDeletions ($existing) | |
Given an array of existing links, returns those links which are not in $this and thus should be deleted. More... | |
getLinkInsertions ($existing=[]) | |
Get an array of pagelinks insertions for passing to the DB Skips the titles specified by the 2-D array $existing. More... | |
getPagePropRowData ($prop) | |
Returns an associative array to be used for inserting a row into the page_props table. More... | |
getPropertySortKeyValue ($value) | |
Determines the sort key for the given property value. More... | |
getTemplateDeletions ($existing) | |
Given an array of existing templates, returns those templates which are not in $this and thus should be deleted. More... | |
getTemplateInsertions ($existing=[]) | |
Get an array of template insertions. More... | |
incrTableUpdate ($table, $prefix, $deletions, $insertions) | |
Update a table by doing a delete query then an insert query. More... | |
invalidateProperties ($changed) | |
Invalidate any necessary link lists related to page property changes. More... | |
updateLinksTimestamp () | |
Update links table freshness. More... | |
Private Attributes | |
IDatabase | $db |
null array | $linkDeletions = null |
Deleted links if calculated. More... | |
null array | $linkInsertions = null |
Added links if calculated. More... | |
Revision | $mRevision |
Revision for which this update has been triggered. More... | |
null array | $propertyDeletions = null |
Deleted properties if calculated. More... | |
null array | $propertyInsertions = null |
Added properties if calculated. More... | |
User null | $user |
Additional Inherited Members | |
Protected Attributes inherited from DataUpdate | |
mixed | $ticket |
Result from LBFactory::getEmptyTransactionTicket() More... | |
Class the manages updates of *_link tables as well as similar extension-managed tables.
Definition at line 33 of file LinksUpdate.php.
LinksUpdate::__construct | ( | Title | $title, |
ParserOutput | $parserOutput, | ||
$recursive = true |
|||
) |
Constructor.
Title | $title | Title of the page we're updating |
ParserOutput | $parserOutput | Output from a full parse of this page |
bool | $recursive | Queue jobs for recursive updates? |
MWException |
Definition at line 111 of file LinksUpdate.php.
References $link, $parserOutput, $title, as, Title\GAID_FOR_UPDATE, Title\getArticleID(), ParserOutput\getCategories(), ParserOutput\getExternalLinks(), ParserOutput\getImages(), ParserOutput\getInterwikiLinks(), ParserOutput\getLanguageLinks(), ParserOutput\getLinks(), ParserOutput\getProperties(), ParserOutput\getTemplates(), list, and Hooks\run().
|
static |
Acquire a lock for performing link table updates for a page on a DB.
IDatabase | $dbw | |
integer | $pageId | |
string | $why | One of (job, atomicity) |
RuntimeException |
Definition at line 196 of file LinksUpdate.php.
References IDatabase\getScopedLockAndFlush().
Referenced by LinksDeletionUpdate\doUpdate(), DeleteLinksJob\run(), and RefreshLinksJob\runForTitle().
|
protected |
Definition at line 206 of file LinksUpdate.php.
References $propertyInsertions, getCategoryDeletions(), getCategoryInsertions(), getExistingCategories(), getExistingExternals(), getExistingImages(), getExistingInterlangs(), getExistingInterwikis(), getExistingLinks(), getExistingProperties(), getExistingTemplates(), getExternalDeletions(), getExternalInsertions(), getImageDeletions(), getImageInsertions(), getInterlangDeletions(), getInterlangInsertions(), getInterwikiDeletions(), getInterwikiInsertions(), getLinkDeletions(), getLinkInsertions(), getPropertyDeletions(), getPropertyInsertions(), getTemplateDeletions(), getTemplateInsertions(), incrTableUpdate(), invalidateCategories(), invalidateImageDescriptions(), invalidateProperties(), queueRecursiveJobs(), updateCategoryCounts(), and updateLinksTimestamp().
Referenced by doUpdate().
LinksUpdate::doUpdate | ( | ) |
Update link tables with outgoing links from an updated article.
Implements DeferrableUpdate.
Definition at line 165 of file LinksUpdate.php.
References doIncrementalUpdate(), getDB(), and Hooks\run().
LinksUpdate::getAddedLinks | ( | ) |
Fetch page links added by this LinksUpdate.
Only available after the update is complete.
Definition at line 1010 of file LinksUpdate.php.
References as, and Title\makeTitle().
LinksUpdate::getAddedProperties | ( | ) |
Fetch page properties added by this LinksUpdate.
Only available after the update is complete.
Definition at line 1047 of file LinksUpdate.php.
References $propertyInsertions.
LinksUpdate::getAsJobSpecification | ( | ) |
Implements EnqueueableDataUpdate.
Definition at line 1087 of file LinksUpdate.php.
References $mRecursive, getDB(), getTitle(), true, and user.
|
private |
Given an array of existing categories, returns those categories which are not in $this and thus should be deleted.
array | $existing |
Definition at line 744 of file LinksUpdate.php.
Referenced by doIncrementalUpdate().
|
private |
Get an array of category insertions.
array | $existing | Mapping existing category names to sort keys. If both match a link in $this, the link will be omitted from the output |
Definition at line 527 of file LinksUpdate.php.
References $mId, $name, $type, $wgContLang, as, getDB(), global, Title\makeTitleSafe(), NS_CATEGORY, NS_FILE, and Collation\singleton().
Referenced by doIncrementalUpdate().
|
private |
Definition at line 1079 of file LinksUpdate.php.
References $db, DB_MASTER, and wfGetDB().
Referenced by doUpdate(), getAsJobSpecification(), getCategoryInsertions(), getExistingCategories(), getExistingExternals(), getExistingImages(), getExistingInterlangs(), getExistingInterwikis(), getExistingLinks(), getExistingProperties(), getExistingTemplates(), getExternalInsertions(), incrTableUpdate(), invalidateCategories(), invalidateImageDescriptions(), and updateLinksTimestamp().
|
private |
Get an array of existing categories, with the name in the key and sort key in the value.
Definition at line 861 of file LinksUpdate.php.
References $res, as, and getDB().
Referenced by doIncrementalUpdate().
|
private |
Get an array of existing external links, URLs in the keys.
Definition at line 845 of file LinksUpdate.php.
References $res, as, and getDB().
Referenced by doIncrementalUpdate().
|
private |
Get an array of existing images, image names in the keys.
Definition at line 829 of file LinksUpdate.php.
References $res, as, and getDB().
Referenced by doIncrementalUpdate().
|
private |
Get an array of existing interlanguage links, with the language code in the key and the title in the value.
Definition at line 878 of file LinksUpdate.php.
References $res, as, and getDB().
Referenced by doIncrementalUpdate().
|
private |
Get an array of existing inline interwiki links, as a 2-D array.
Definition at line 893 of file LinksUpdate.php.
References $res, as, and getDB().
Referenced by doIncrementalUpdate().
|
private |
Get an array of existing links, as a 2-D array.
Definition at line 791 of file LinksUpdate.php.
References $res, as, and getDB().
Referenced by doIncrementalUpdate().
|
private |
Get an array of existing categories, with the name in the key and sort key in the value.
Definition at line 912 of file LinksUpdate.php.
References $res, as, and getDB().
Referenced by doIncrementalUpdate().
|
private |
Get an array of existing templates, as a 2-D array.
Definition at line 810 of file LinksUpdate.php.
References $res, as, and getDB().
Referenced by doIncrementalUpdate().
|
private |
Given an array of existing external links, returns those links which are not in $this and thus should be deleted.
array | $existing |
Definition at line 734 of file LinksUpdate.php.
Referenced by doIncrementalUpdate().
|
private |
Get an array of externallinks insertions.
Skips the names specified in $existing
array | $existing |
Definition at line 502 of file LinksUpdate.php.
References $mId, as, getDB(), and wfMakeUrlIndexes().
Referenced by doIncrementalUpdate().
|
private |
Given an array of existing images, returns those images which are not in $this and thus should be deleted.
array | $existing |
Definition at line 724 of file LinksUpdate.php.
Referenced by doIncrementalUpdate().
|
private |
Get an array of image insertions Skips the names specified in $existing.
array | $existing |
Definition at line 483 of file LinksUpdate.php.
Referenced by doIncrementalUpdate().
LinksUpdate::getImages | ( | ) |
Return the list of images used as generated by the parser.
Definition at line 944 of file LinksUpdate.php.
References $mImages.
|
private |
Given an array of existing interlanguage links, returns those links which are not in $this and thus should be deleted.
array | $existing |
Definition at line 754 of file LinksUpdate.php.
Referenced by doIncrementalUpdate().
|
private |
Get an array of interlanguage link insertions.
array | $existing | Mapping existing language codes to titles |
Definition at line 571 of file LinksUpdate.php.
References $lang, $mId, $title, and as.
Referenced by doIncrementalUpdate().
|
private |
Given an array of existing interwiki links, returns those links which are not in $this and thus should be deleted.
array | $existing |
Definition at line 773 of file LinksUpdate.php.
References as.
Referenced by doIncrementalUpdate().
|
private |
Get an array of interwiki insertions for passing to the DB Skips the titles specified by the 2-D array $existing.
array | $existing |
Definition at line 661 of file LinksUpdate.php.
Referenced by doIncrementalUpdate().
|
private |
Given an array of existing links, returns those links which are not in $this and thus should be deleted.
array | $existing |
Definition at line 686 of file LinksUpdate.php.
References as.
Referenced by doIncrementalUpdate().
|
private |
Get an array of pagelinks insertions for passing to the DB Skips the titles specified by the 2-D array $existing.
array | $existing |
Definition at line 436 of file LinksUpdate.php.
Referenced by doIncrementalUpdate().
|
private |
Returns an associative array to be used for inserting a row into the page_props table.
Besides the given property name, this will include the page id from $this->mId and any property value from $this->mProperties.
The array returned will include the pp_sortkey field if this is present in the database (as indicated by $wgPagePropsHaveSortkey). The sortkey value is currently determined by getPropertySortKeyValue().
string | $prop | The name of the property. |
Definition at line 617 of file LinksUpdate.php.
References $mId, $value, getPropertySortKeyValue(), and global.
Referenced by getPropertyInsertions().
LinksUpdate::getParserOutput | ( | ) |
Returns parser output.
Definition at line 936 of file LinksUpdate.php.
References $mParserOutput.
LinksUpdate::getPropertyDeletions | ( | $existing | ) |
Get array of properties which should be deleted.
array | $existing |
Definition at line 763 of file LinksUpdate.php.
Referenced by doIncrementalUpdate().
LinksUpdate::getPropertyInsertions | ( | $existing = [] | ) |
Get an array of page property insertions.
array | $existing |
Definition at line 590 of file LinksUpdate.php.
References $name, as, and getPagePropRowData().
Referenced by doIncrementalUpdate().
|
private |
Determines the sort key for the given property value.
This will return $value if it is a float or int, 1 or resp. 0 if it is a bool, and null otherwise.
mixed | $value |
Definition at line 647 of file LinksUpdate.php.
References $value.
Referenced by getPagePropRowData().
LinksUpdate::getRemovedLinks | ( | ) |
Fetch page links removed by this LinksUpdate.
Only available after the update is complete.
Definition at line 1027 of file LinksUpdate.php.
References $title, $titles, as, and Title\makeTitle().
LinksUpdate::getRemovedProperties | ( | ) |
Fetch page properties removed by this LinksUpdate.
Only available after the update is complete.
Definition at line 1057 of file LinksUpdate.php.
References $propertyDeletions.
LinksUpdate::getRevision | ( | ) |
Definition at line 963 of file LinksUpdate.php.
References $mRevision.
|
private |
Given an array of existing templates, returns those templates which are not in $this and thus should be deleted.
array | $existing |
Definition at line 705 of file LinksUpdate.php.
References as.
Referenced by doIncrementalUpdate().
|
private |
Get an array of template insertions.
Like getLinkInsertions()
array | $existing |
Definition at line 460 of file LinksUpdate.php.
Referenced by doIncrementalUpdate().
LinksUpdate::getTitle | ( | ) |
Return the title object of the page being updated.
Definition at line 927 of file LinksUpdate.php.
References $mTitle.
Referenced by getAsJobSpecification().
LinksUpdate::getTriggeringUser | ( | ) |
|
private |
Update a table by doing a delete query then an insert query.
string | $table | Table name |
string | $prefix | Field name prefix |
array | $deletions | |
array | $insertions | Rows to insert |
Definition at line 357 of file LinksUpdate.php.
References $mId, $services, as, getDB(), and Hooks\run().
Referenced by doIncrementalUpdate().
LinksUpdate::invalidateCategories | ( | $cats | ) |
array | $cats |
Definition at line 327 of file LinksUpdate.php.
References getDB(), PurgeJobUtils\invalidatePages(), and NS_CATEGORY.
Referenced by doIncrementalUpdate().
LinksUpdate::invalidateImageDescriptions | ( | $images | ) |
array | $images |
Definition at line 346 of file LinksUpdate.php.
References getDB(), PurgeJobUtils\invalidatePages(), and NS_FILE.
Referenced by doIncrementalUpdate().
|
private |
Invalidate any necessary link lists related to page property changes.
array | $changed |
Definition at line 989 of file LinksUpdate.php.
References $name, $value, DeferredUpdates\addUpdate(), as, and global.
Referenced by doIncrementalUpdate().
|
protected |
Queue recursive jobs for this page.
Which means do LinksUpdate on all pages that include the current page, using the job queue.
Definition at line 282 of file LinksUpdate.php.
References $title, as, RefreshLinksJob\newPrioritized(), NS_FILE, and JobQueueGroup\singleton().
Referenced by doIncrementalUpdate().
|
static |
Queue a RefreshLinks job for any table.
Definition at line 308 of file LinksUpdate.php.
References $job, Title\getBacklinkCache(), Job\newRootJobParams(), and JobQueueGroup\singleton().
Referenced by WikiPage\doDeleteUpdates(), and LocalFile\recordUpload2().
LinksUpdate::setRevision | ( | Revision | $revision | ) |
Set the revision corresponding to this LinksUpdate.
Revision | $revision |
Definition at line 955 of file LinksUpdate.php.
LinksUpdate::setTriggeringUser | ( | User | $user | ) |
Set the User who triggered this LinksUpdate.
User | $user |
Definition at line 973 of file LinksUpdate.php.
LinksUpdate::updateCategoryCounts | ( | $added, | |
$deleted | |||
) |
Update all the appropriate counts in the category table.
array | $added | Associative array of category name => sort key |
array | $deleted | Associative array of category name => sort key |
Definition at line 336 of file LinksUpdate.php.
References WikiPage\factory().
Referenced by doIncrementalUpdate().
|
private |
Update links table freshness.
Definition at line 1064 of file LinksUpdate.php.
References $timestamp, and getDB().
Referenced by doIncrementalUpdate().
|
private |
Definition at line 101 of file LinksUpdate.php.
Referenced by getDB().
|
private |
Deleted links if calculated.
Definition at line 83 of file LinksUpdate.php.
|
private |
Added links if calculated.
Definition at line 78 of file LinksUpdate.php.
array LinksUpdate::$mCategories |
Map of category names to sort keys.
Definition at line 58 of file LinksUpdate.php.
array LinksUpdate::$mExternals |
URLs of external links, array key only.
Definition at line 55 of file LinksUpdate.php.
int LinksUpdate::$mId |
Page ID of the article linked from.
Definition at line 37 of file LinksUpdate.php.
Referenced by getCategoryInsertions(), getExternalInsertions(), getImageInsertions(), getInterlangInsertions(), getInterwikiInsertions(), getLinkInsertions(), getPagePropRowData(), getTemplateInsertions(), and incrTableUpdate().
array LinksUpdate::$mImages |
DB keys of the images used, in the array key only.
Definition at line 49 of file LinksUpdate.php.
Referenced by getImages().
array LinksUpdate::$mInterlangs |
Map of language codes to titles.
Definition at line 61 of file LinksUpdate.php.
array LinksUpdate::$mInterwikis |
2-D map of (prefix => DBK => 1)
Definition at line 64 of file LinksUpdate.php.
array LinksUpdate::$mLinks |
Map of title strings to IDs for the links in the document.
Definition at line 46 of file LinksUpdate.php.
ParserOutput LinksUpdate::$mParserOutput |
Definition at line 43 of file LinksUpdate.php.
Referenced by getParserOutput().
array LinksUpdate::$mProperties |
Map of arbitrary name to value.
Definition at line 67 of file LinksUpdate.php.
bool LinksUpdate::$mRecursive |
Whether to queue jobs for recursive updates.
Definition at line 70 of file LinksUpdate.php.
Referenced by getAsJobSpecification().
|
private |
Revision for which this update has been triggered.
Definition at line 73 of file LinksUpdate.php.
Referenced by getRevision().
array LinksUpdate::$mTemplates |
Map of title strings to IDs for the template references, including broken ones.
Definition at line 52 of file LinksUpdate.php.
Title LinksUpdate::$mTitle |
Title object of the article linked from.
Definition at line 40 of file LinksUpdate.php.
Referenced by getTitle().
|
private |
Deleted properties if calculated.
Definition at line 93 of file LinksUpdate.php.
Referenced by getRemovedProperties().
|
private |
Added properties if calculated.
Definition at line 88 of file LinksUpdate.php.
Referenced by doIncrementalUpdate(), and getAddedProperties().
|
private |
Definition at line 98 of file LinksUpdate.php.
Referenced by getTriggeringUser(), and setTriggeringUser().