MediaWiki
REL1_31
doMaintenance.php
Go to the documentation of this file.
1
<?php
27
use
MediaWiki\MediaWikiServices
;
28
29
if
( !defined(
'RUN_MAINTENANCE_IF_MAIN'
) ) {
30
echo
"This file must be included after Maintenance.php\n"
;
31
exit( 1 );
32
}
33
34
// Wasn't included from the file scope, halt execution (probably wanted the class)
35
// If a class is using commandLine.inc (old school maintenance), they definitely
36
// cannot be included and will proceed with execution
37
if
( !
Maintenance::shouldExecute
() &&
$maintClass
!= CommandLineInc::class ) {
38
return
;
39
}
40
41
if
( !
$maintClass
|| !class_exists(
$maintClass
) ) {
42
echo
"\$maintClass is not set or is set to a non-existent class.\n"
;
43
exit( 1 );
44
}
45
46
// Get an object to start us off
48
$maintenance
=
new
$maintClass
();
49
50
// Basic sanity checks and such
51
$maintenance
->setup();
52
53
// We used to call this variable $self, but it was moved
54
// to $maintenance->mSelf. Keep that here for b/c
55
$self
=
$maintenance
->getName();
56
57
// Define how settings are loaded (e.g. LocalSettings.php)
58
if
( !defined(
'MW_CONFIG_CALLBACK'
) && !defined(
'MW_CONFIG_FILE'
) ) {
59
define(
'MW_CONFIG_FILE'
,
$maintenance
->loadSettings() );
60
}
61
62
// Custom setup for Maintenance entry point
63
if
( !defined(
'MW_SETUP_CALLBACK'
) ) {
64
function
wfMaintenanceSetup() {
65
// phpcs:ignore MediaWiki.NamingConventions.ValidGlobalName.wgPrefix
66
global
$maintenance
,
$wgLocalisationCacheConf
,
$wgCacheDirectory
;
67
if
(
$maintenance
->getDbType() ===
Maintenance::DB_NONE
) {
68
if
(
$wgLocalisationCacheConf
[
'storeClass'
] ===
false
69
&& (
$wgLocalisationCacheConf
[
'store'
] ==
'db'
70
|| (
$wgLocalisationCacheConf
[
'store'
] ==
'detect'
&& !
$wgCacheDirectory
) )
71
) {
72
$wgLocalisationCacheConf
[
'storeClass'
] = LCStoreNull::class;
73
}
74
}
75
76
$maintenance
->finalSetup();
77
}
78
define(
'MW_SETUP_CALLBACK'
,
'wfMaintenanceSetup'
);
79
}
80
81
require_once
"$IP/includes/Setup.php"
;
82
83
// Initialize main config instance
84
$maintenance
->setConfig( MediaWikiServices::getInstance()->getMainConfig() );
85
86
// Sanity-check required extensions are installed
87
$maintenance
->checkRequiredExtensions();
88
89
// A good time when no DBs have writes pending is around lag checks.
90
// This avoids having long running scripts just OOM and lose all the updates.
91
$maintenance
->setAgentAndTriggers();
92
93
// Do the work
94
$maintenance
->execute();
95
96
// Potentially debug globals
97
$maintenance
->globals();
98
99
if
(
$maintenance
->getDbType() !==
Maintenance::DB_NONE
) {
100
// Perform deferred updates.
101
$lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory();
102
$lbFactory->commitMasterChanges(
$maintClass
);
103
DeferredUpdates::doUpdates
();
104
}
105
106
// log profiling info
107
wfLogProfilingData
();
108
109
if
( isset( $lbFactory ) ) {
110
// Commit and close up!
111
$lbFactory->commitMasterChanges(
'doMaintenance'
);
112
$lbFactory->shutdown( $lbFactory::SHUTDOWN_NO_CHRONPROT );
113
}
$wgCacheDirectory
$wgCacheDirectory
Directory for caching data in the local filesystem.
Definition
DefaultSettings.php:2252
$wgLocalisationCacheConf
$wgLocalisationCacheConf
Localisation cache configuration.
Definition
DefaultSettings.php:2535
wfLogProfilingData
wfLogProfilingData()
Definition
GlobalFunctions.php:1178
DeferredUpdates\doUpdates
static doUpdates( $mode='run', $stage=self::ALL)
Do any deferred updates and clear the list.
Definition
DeferredUpdates.php:123
Maintenance\DB_NONE
const DB_NONE
Constants for DB access type.
Definition
Maintenance.php:66
Maintenance\shouldExecute
static shouldExecute()
Should we execute the maintenance script, or just allow it to be included as a standalone class?...
Definition
Maintenance.php:177
MediaWiki\MediaWikiServices
MediaWikiServices is the service locator for the application scope of MediaWiki.
Definition
MediaWikiServices.php:88
$maintenance
$maintenance
Definition
doMaintenance.php:48
$self
$self
Definition
doMaintenance.php:55
$maintClass
class DemoMaint extends Maintenance $maintClass
maintenance
doMaintenance.php
Generated on Mon Nov 25 2024 15:35:59 for MediaWiki by
1.10.0