MediaWiki  master
doMaintenance.php
Go to the documentation of this file.
1 <?php
30 
31 // No AutoLoader yet
32 require_once __DIR__ . '/includes/MaintenanceRunner.php';
33 require_once __DIR__ . '/includes/MaintenanceParameters.php';
34 
35 if ( !defined( 'RUN_MAINTENANCE_IF_MAIN' ) ) {
36  echo "This file must be included after Maintenance.php\n";
37  exit( 1 );
38 }
39 
40 // Wasn't included from the file scope, halt execution (probably wanted the class).
41 // This typically happens when a maintenance script is executed using run.php.
42 // @phan-suppress-next-line PhanSuspiciousValueComparisonInGlobalScope
43 if ( !MaintenanceRunner::shouldExecute() && $maintClass != CommandLineInc::class ) {
44  return;
45 }
46 
47 // @phan-suppress-next-line PhanImpossibleConditionInGlobalScope
48 if ( !$maintClass || !class_exists( $maintClass ) ) {
49  echo "\$maintClass is not set or is set to a non-existent class.\n";
50  exit( 1 );
51 }
52 
53 // Define the MediaWiki entrypoint
54 define( 'MEDIAWIKI', true );
55 
57 require_once "$IP/includes/AutoLoader.php";
58 
60 $runner->initForClass( $maintClass, $GLOBALS['argv'] );
61 
62 // We used to call this variable $self, but it was moved
63 // to $maintenance->mSelf. Keep that here for b/c
64 $self = $runner->getName();
65 
66 $runner->defineSettings();
67 
68 // Custom setup for Maintenance entry point
69 if ( !defined( 'MW_FINAL_SETUP_CALLBACK' ) ) {
70 
71  // Define a function, since we can't put a closure or object
72  // reference into MW_FINAL_SETUP_CALLBACK.
73  function wfMaintenanceSetup( SettingsBuilder $settingsBuilder ) {
74  global $runner;
75  $runner->setup( $settingsBuilder );
76  }
77 
78  define( 'MW_FINAL_SETUP_CALLBACK', 'wfMaintenanceSetup' );
79 }
80 
81 // Initialize MediaWiki (load settings, initialized session,
82 // enable MediaWikiServices)
83 require_once "$IP/includes/Setup.php";
84 
85 // We only get here if the script was invoked directly.
86 // If it was loaded by MaintenanceRunner, MaintenanceRunner::shouldExecute() would have returned false,
87 // and we would have returned from this file early.
88 
89 if ( stream_isatty( STDOUT ) ) {
90  echo "\n";
91  echo "*******************************************************************************\n";
92  echo "NOTE: Do not run maintenance scripts directly, use maintenance/run.php instead!\n";
93  echo " Running scripts directly has been deprecated in MediaWiki 1.40.\n";
94  echo " It may not work for some (or any) scripts in the future.\n";
95  echo "*******************************************************************************\n";
96  echo "\n";
97 }
98 
99 // Do it!
100 $success = $runner->run();
101 
102 // Exit with an error status if execute() returned false
103 if ( !$success ) {
104  exit( 1 );
105 }
wfDetectInstallPath()
Decide and remember where mediawiki is installed.
$maintClass
A runner for maintenance scripts.
Builder class for constructing a Config object from a set of sources during bootstrap.
$self
$runner
if(stream_isatty(STDOUT)) $success