MediaWiki
REL1_30
DeleteLinksJob.php
Go to the documentation of this file.
1
<?php
23
use \MediaWiki\MediaWikiServices;
24
33
class
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
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
Definition
GlobalFunctions.php:2857
DeleteLinksJob
Job to prune link tables for pages that were deleted.
Definition
DeleteLinksJob.php:33
DeleteLinksJob\__construct
__construct(Title $title, array $params)
Definition
DeleteLinksJob.php:34
DeleteLinksJob\run
run()
Run the job.
Definition
DeleteLinksJob.php:39
Job
Class to both describe a background job and handle jobs.
Definition
Job.php:31
Job\setLastError
setLastError( $error)
Definition
Job.php:403
Job\$params
array $params
Array of job parameters.
Definition
Job.php:36
LinksDeletionUpdate
Update object handling the cleanup of links tables after a page was deleted.
Definition
LinksDeletionUpdate.php:29
LinksUpdate\acquirePageLock
static acquirePageLock(IDatabase $dbw, $pageId, $why='atomicity')
Acquire a lock for performing link table updates for a page on a DB.
Definition
LinksUpdate.php:201
Title
Represents a title within MediaWiki.
Definition
Title.php:39
WikiPage\newFromID
static newFromID( $id, $from='fromdb')
Constructor from a page id.
Definition
WikiPage.php:159
WikiPage\factory
static factory(Title $title)
Create a WikiPage object of the appropriate class for the given title.
Definition
WikiPage.php:121
DB_MASTER
const DB_MASTER
Definition
defines.php:26
includes
jobqueue
jobs
DeleteLinksJob.php
Generated on Mon Nov 25 2024 15:42:26 for MediaWiki by
1.10.0