MediaWiki REL1_40
|
Shared code for pagelinks and templatelinks. More...
Inherits MediaWiki\Deferred\LinksUpdate\TitleLinksTable.
Inherited by MediaWiki\Deferred\LinksUpdate\PageLinksTable, and MediaWiki\Deferred\LinksUpdate\TemplateLinksTable.
Protected Member Functions | |
deduplicateLinkIds ( $linkIds) | |
Given an iterator over link IDs, remove links which go to the same title, leaving only one link per title. | |
deleteLink ( $linkId) | |
Delete a link identified by ID. | |
fetchExistingRows () | |
Do a select query to fetch the existing rows. | |
getExistingFields () | |
Get the fields to be used in fetchExistingRows(). | |
getExistingLinkIDs () | |
Get an array (or iterator) of link IDs for the existing state. | |
getFromNamespaceField () | |
getNamespaceField () | |
Get the namespace field name. | |
getNewLinkIDs () | |
Get an array (or iterator) of link IDs for the new state. | |
getTargetIdField () | |
Get the link target id (DB key) field name. | |
getTitleField () | |
Get the title (DB key) field name. | |
insertLink ( $linkId) | |
Insert a link identified by ID. | |
isExisting ( $linkId) | |
Determine whether a link (from the new set) is in the existing set. | |
isInNewSet ( $linkId) | |
Determine whether a link (from the existing set) is in the new set. | |
makePageReferenceValue ( $linkId) | |
Convert a link ID to a PageReferenceValue. | |
makeTitle ( $linkId) | |
Convert a link ID to a Title. | |
needForcedLinkRefresh () | |
Subclasses can override this to return true in order to force reinsertion of all the links due to some property of the link changing for reasons not represented by the link ID. | |
Protected Member Functions inherited from MediaWiki\Deferred\LinksUpdate\TitleLinksTable | |
getDeduplicatedLinkIds ( $setType) | |
Get link IDs for a given set type, filtering out duplicate links to the same title. | |
Protected Member Functions inherited from MediaWiki\Deferred\LinksUpdate\LinksTable | |
deleteRow ( $conds) | |
Queue a deletion operation. | |
doWrites () | |
Do the common DB operations. | |
finishUpdate () | |
Subclasses can override this to do any updates associated with their link data, for example dispatching HTML update jobs. | |
getBatchSize () | |
Get the maximum number of rows to update in a batch. | |
getDB () | |
getFromConds () | |
Get field=>value associative array for the from field(s) | |
getFromField () | |
Get the name of the field which links to page_id. | |
getInsertOptions () | |
Get the options for the insert queries. | |
getLBFactory () | |
getLinkIDs ( $setType) | |
Get an array or iterator of link IDs of a given type. | |
getMovedPage () | |
Assuming the page was moved, get the original page title before the move. | |
getRevision () | |
Get the RevisionRecord of the new revision, if the LinksUpdate caller injected one. | |
getSourcePage () | |
Get the source page, i.e. | |
getSourcePageId () | |
Get the page_id of the source page. | |
getTableName () | |
Get the table name. | |
getTransactionTicket () | |
Get the empty transaction ticket, or null if there is none. | |
insertRow ( $row) | |
Queue a row for insertion. | |
isCrossNamespaceMove () | |
Determine whether the page was moved to a different namespace. | |
isMove () | |
Determine whether the page was moved. | |
linksTargetNormalizationStage () | |
Normalization stage of the links table (see T222224) | |
startUpdate () | |
Subclasses can override this to do any necessary setup before individual write operations begin. | |
Protected Attributes | |
array | $newLinks = [] |
A 2d array representing the new links, with the namespace ID in the first key, the DB key in the second key, and the value arbitrary. | |
Protected Attributes inherited from MediaWiki\Deferred\LinksUpdate\LinksTable | |
array | $deletedLinks = [] |
Link IDs for deleted links. | |
array | $insertedLinks = [] |
Link IDs for inserted links. | |
LinkTargetLookup | $linkTargetLookup |
array | $rowsToDelete = [] |
Rows to delete. | |
array | $rowsToInsert = [] |
Rows to insert. | |
bool | $strictTestMode |
Additional Inherited Members | |
Public Member Functions inherited from MediaWiki\Deferred\LinksUpdate\TitleLinksTable | |
getPageReferenceIterator ( $setType) | |
Get a link set as an iterator over PageReferenceValue objects. | |
getTitleArray ( $setType) | |
Get a link set as an array of Title objects. | |
Public Member Functions inherited from MediaWiki\Deferred\LinksUpdate\LinksTable | |
beforeLock () | |
Subclasses can override this to do any necessary setup before the lock is acquired. | |
injectBaseDependencies (LBFactory $lbFactory, LinkTargetLookup $linkTargetLookup, PageIdentity $sourcePage, $batchSize) | |
This is called by the factory to inject dependencies for the base class. | |
setMoveDetails (PageReference $movedPage) | |
Notify the object that the operation is a page move, and set the original title. | |
setParserOutput (ParserOutput $parserOutput) | |
Subclasses should implement this to extract the data they need from the ParserOutput. | |
setRevision (RevisionRecord $revision) | |
Set the revision associated with the edit. | |
setStrictTestMode ( $mode=true) | |
Omit conflict resolution options from the insert query so that testing can confirm that the incremental update logic was correct. | |
setTransactionTicket ( $ticket) | |
Set the empty transaction ticket. | |
update () | |
Execute an edit/delete update. | |
Public Attributes inherited from MediaWiki\Deferred\LinksUpdate\LinksTable | |
const | CHANGED = 3 |
Link type: Changed (inserted or removed) links. | |
const | DELETED = 2 |
Link type: Deleted (removed) links. | |
const | INSERTED = 1 |
Link type: Inserted (added) links. | |
const | NEW = 5 |
Link type: new links (from the ParserOutput) | |
const | OLD = 4 |
Link type: existing/old links. | |
Shared code for pagelinks and templatelinks.
They are very similar tables since they both link to an arbitrary page identified by namespace and title.
Link ID format: string[]:
Definition at line 20 of file GenericPageLinksTable.php.
|
protected |
Given an iterator over link IDs, remove links which go to the same title, leaving only one link per title.
iterable<mixed> | $linkIds |
Reimplemented from MediaWiki\Deferred\LinksUpdate\TitleLinksTable.
Definition at line 179 of file GenericPageLinksTable.php.
|
protected |
Delete a link identified by ID.
The subclass is expected to queue the deletion by calling deleteRow().
mixed | $linkId |
Reimplemented from MediaWiki\Deferred\LinksUpdate\LinksTable.
Definition at line 151 of file GenericPageLinksTable.php.
References SCHEMA_COMPAT_WRITE_NEW, and SCHEMA_COMPAT_WRITE_OLD.
|
protected |
Do a select query to fetch the existing rows.
This is a helper for subclasses.
Reimplemented from MediaWiki\Deferred\LinksUpdate\LinksTable.
Definition at line 92 of file GenericPageLinksTable.php.
References MediaWiki\Deferred\LinksUpdate\GenericPageLinksTable\getTargetIdField().
|
protected |
Get the fields to be used in fetchExistingRows().
Note that fetchExistingRows() is just a helper for subclasses. The value returned here is effectively private to the subclass.
Reimplemented from MediaWiki\Deferred\LinksUpdate\LinksTable.
Definition at line 63 of file GenericPageLinksTable.php.
References MediaWiki\Deferred\LinksUpdate\GenericPageLinksTable\getNamespaceField(), MediaWiki\Deferred\LinksUpdate\GenericPageLinksTable\getTitleField(), MediaWiki\Deferred\LinksUpdate\LinksTable\linksTargetNormalizationStage(), and SCHEMA_COMPAT_WRITE_OLD.
|
protected |
Get an array (or iterator) of link IDs for the existing state.
The subclass should load the data from the database. There is fetchExistingRows() to make this easier but the subclass is responsible for caching.
See the LinksTable doc comment for an explanation of link IDs.
Reimplemented from MediaWiki\Deferred\LinksUpdate\LinksTable.
Definition at line 116 of file GenericPageLinksTable.php.
|
abstractprotected |
Reimplemented in MediaWiki\Deferred\LinksUpdate\PageLinksTable, and MediaWiki\Deferred\LinksUpdate\TemplateLinksTable.
|
abstractprotected |
Get the namespace field name.
Reimplemented in MediaWiki\Deferred\LinksUpdate\PageLinksTable, and MediaWiki\Deferred\LinksUpdate\TemplateLinksTable.
Referenced by MediaWiki\Deferred\LinksUpdate\GenericPageLinksTable\getExistingFields().
|
protected |
Get an array (or iterator) of link IDs for the new state.
See the LinksTable doc comment for an explanation of link IDs.
Reimplemented from MediaWiki\Deferred\LinksUpdate\LinksTable.
Definition at line 108 of file GenericPageLinksTable.php.
|
abstractprotected |
Get the link target id (DB key) field name.
Reimplemented in MediaWiki\Deferred\LinksUpdate\PageLinksTable, and MediaWiki\Deferred\LinksUpdate\TemplateLinksTable.
Referenced by MediaWiki\Deferred\LinksUpdate\GenericPageLinksTable\fetchExistingRows().
|
abstractprotected |
Get the title (DB key) field name.
Reimplemented in MediaWiki\Deferred\LinksUpdate\PageLinksTable, and MediaWiki\Deferred\LinksUpdate\TemplateLinksTable.
Referenced by MediaWiki\Deferred\LinksUpdate\GenericPageLinksTable\getExistingFields().
|
protected |
Insert a link identified by ID.
The subclass is expected to queue the insertion by calling insertRow().
mixed | $linkId |
Reimplemented from MediaWiki\Deferred\LinksUpdate\LinksTable.
Definition at line 134 of file GenericPageLinksTable.php.
References getDB(), SCHEMA_COMPAT_WRITE_NEW, and SCHEMA_COMPAT_WRITE_OLD.
|
protected |
Determine whether a link (from the new set) is in the existing set.
mixed | $linkId |
Reimplemented from MediaWiki\Deferred\LinksUpdate\LinksTable.
Definition at line 124 of file GenericPageLinksTable.php.
|
protected |
Determine whether a link (from the existing set) is in the new set.
mixed | $linkId |
Reimplemented from MediaWiki\Deferred\LinksUpdate\LinksTable.
Definition at line 129 of file GenericPageLinksTable.php.
|
protected |
Convert a link ID to a PageReferenceValue.
mixed | $linkId |
Reimplemented from MediaWiki\Deferred\LinksUpdate\TitleLinksTable.
Definition at line 171 of file GenericPageLinksTable.php.
|
protected |
Convert a link ID to a Title.
mixed | $linkId |
Reimplemented from MediaWiki\Deferred\LinksUpdate\TitleLinksTable.
Definition at line 175 of file GenericPageLinksTable.php.
|
protected |
Subclasses can override this to return true in order to force reinsertion of all the links due to some property of the link changing for reasons not represented by the link ID.
Reimplemented from MediaWiki\Deferred\LinksUpdate\LinksTable.
Definition at line 167 of file GenericPageLinksTable.php.
|
protected |
A 2d array representing the new links, with the namespace ID in the first key, the DB key in the second key, and the value arbitrary.
Definition at line 27 of file GenericPageLinksTable.php.