MediaWiki REL1_30
DeleteLinksJob.php
Go to the documentation of this file.
1<?php
23use \MediaWiki\MediaWikiServices;
24
33class DeleteLinksJob extends Job {
34 function __construct( Title $title, array $params ) {
35 parent::__construct( 'deleteLinks', $title, $params );
36 $this->removeDuplicates = true;
37 }
38
39 function run() {
40 if ( is_null( $this->title ) ) {
41 $this->setLastError( "deleteLinks: Invalid title" );
42 return false;
43 }
44
45 $pageId = $this->params['pageId'];
46
47 // Serialize links updates by page ID so they see each others' changes
48 $scopedLock = LinksUpdate::acquirePageLock( wfGetDB( DB_MASTER ), $pageId, 'job' );
49
50 if ( WikiPage::newFromID( $pageId, WikiPage::READ_LATEST ) ) {
51 // The page was restored somehow or something went wrong
52 $this->setLastError( "deleteLinks: Page #$pageId exists" );
53 return false;
54 }
55
56 $factory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory();
57 $timestamp = isset( $this->params['timestamp'] ) ? $this->params['timestamp'] : null;
58 $page = WikiPage::factory( $this->title ); // title when deleted
59
60 $update = new LinksDeletionUpdate( $page, $pageId, $timestamp );
61 $update->setTransactionTicket( $factory->getEmptyTransactionTicket( __METHOD__ ) );
62 $update->doUpdate();
63
64 return true;
65 }
66}
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
Job to prune link tables for pages that were deleted.
__construct(Title $title, array $params)
run()
Run the job.
Class to both describe a background job and handle jobs.
Definition Job.php:31
setLastError( $error)
Definition Job.php:403
array $params
Array of job parameters.
Definition Job.php:36
Update object handling the cleanup of links tables after a page was deleted.
static acquirePageLock(IDatabase $dbw, $pageId, $why='atomicity')
Acquire a lock for performing link table updates for a page on a DB.
Represents a title within MediaWiki.
Definition Title.php:39
static newFromID( $id, $from='fromdb')
Constructor from a page id.
Definition WikiPage.php:159
static factory(Title $title)
Create a WikiPage object of the appropriate class for the given title.
Definition WikiPage.php:121
const DB_MASTER
Definition defines.php:26