summaryrefslogtreecommitdiff
path: root/maintenance/Maintenance.php
diff options
context:
space:
mode:
Diffstat (limited to 'maintenance/Maintenance.php')
-rw-r--r--maintenance/Maintenance.php80
1 files changed, 32 insertions, 48 deletions
diff --git a/maintenance/Maintenance.php b/maintenance/Maintenance.php
index 082cf8be..69d11313 100644
--- a/maintenance/Maintenance.php
+++ b/maintenance/Maintenance.php
@@ -20,23 +20,24 @@
* @defgroup Maintenance Maintenance
*/
+// Make sure we're on PHP5.3.2 or better
+if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.2' ) < 0 ) {
+ // We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
+ require_once( dirname( __FILE__ ) . '/../includes/PHPVersionError.php' );
+ wfPHPVersionError( 'cli' );
+}
+
/**
* @defgroup MaintenanceArchive Maintenance archives
* @ingroup Maintenance
*/
// Define this so scripts can easily find doMaintenance.php
-define( 'RUN_MAINTENANCE_IF_MAIN', dirname( __FILE__ ) . '/doMaintenance.php' );
+define( 'RUN_MAINTENANCE_IF_MAIN', __DIR__ . '/doMaintenance.php' );
define( 'DO_MAINTENANCE', RUN_MAINTENANCE_IF_MAIN ); // original name, harmless
$maintClass = false;
-// Make sure we're on PHP5 or better
-if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.2.3' ) < 0 ) {
- require_once( dirname( __FILE__ ) . '/../includes/PHPVersionError.php' );
- wfPHPVersionError( 'cli' );
-}
-
/**
* Abstract maintenance class for quickly writing and churning out
* maintenance scripts with minimal effort. All that _must_ be defined
@@ -101,7 +102,10 @@ abstract class Maintenance {
// Generic options which might or not be supported by the script
private $mDependantParameters = array();
- // Used by getDD() / setDB()
+ /**
+ * Used by getDD() / setDB()
+ * @var DatabaseBase
+ */
private $mDb = null;
/**
@@ -120,7 +124,7 @@ abstract class Maintenance {
global $IP;
$IP = strval( getenv( 'MW_INSTALL_PATH' ) ) !== ''
? getenv( 'MW_INSTALL_PATH' )
- : realpath( dirname( __FILE__ ) . '/..' );
+ : realpath( __DIR__ . '/..' );
$this->addDefaultParams();
register_shutdown_function( array( $this, 'outputChanneled' ), false );
@@ -297,6 +301,9 @@ abstract class Maintenance {
return rtrim( $input );
}
+ /**
+ * @return bool
+ */
public function isQuiet() {
return $this->mQuiet;
}
@@ -314,11 +321,7 @@ abstract class Maintenance {
}
if ( $channel === null ) {
$this->cleanupChanneled();
- if( php_sapi_name() == 'cli' ) {
- fwrite( STDOUT, $out );
- } else {
- print( $out );
- }
+ print( $out );
} else {
$out = preg_replace( '/\n\z/', '', $out );
$this->outputChanneled( $out, $channel );
@@ -352,11 +355,7 @@ abstract class Maintenance {
*/
public function cleanupChanneled() {
if ( !$this->atLineStart ) {
- if( php_sapi_name() == 'cli' ) {
- fwrite( STDOUT, "\n" );
- } else {
- print "\n";
- }
+ print "\n";
$this->atLineStart = true;
}
}
@@ -366,7 +365,7 @@ abstract class Maintenance {
* same channel are concatenated, but any intervening messages in another
* channel start a new line.
* @param $msg String: the message without trailing newline
- * @param $channel Channel identifier or null for no
+ * @param $channel string Channel identifier or null for no
* channel. Channel comparison uses ===.
*/
public function outputChanneled( $msg, $channel = null ) {
@@ -375,31 +374,17 @@ abstract class Maintenance {
return;
}
- $cli = php_sapi_name() == 'cli';
-
// End the current line if necessary
if ( !$this->atLineStart && $channel !== $this->lastChannel ) {
- if( $cli ) {
- fwrite( STDOUT, "\n" );
- } else {
- print "\n";
- }
+ print "\n";
}
- if( $cli ) {
- fwrite( STDOUT, $msg );
- } else {
- print $msg;
- }
+ print $msg;
$this->atLineStart = false;
if ( $channel === null ) {
// For unchanneled messages, output trailing newline immediately
- if( $cli ) {
- fwrite( STDOUT, "\n" );
- } else {
- print "\n";
- }
+ print "\n";
$this->atLineStart = true;
}
$this->lastChannel = $channel;
@@ -951,7 +936,7 @@ abstract class Maintenance {
public function purgeRedundantText( $delete = true ) {
# Data should come off the master, wrapped in a transaction
$dbw = $this->getDB( DB_MASTER );
- $dbw->begin();
+ $dbw->begin( __METHOD__ );
$tbl_arc = $dbw->tableName( 'archive' );
$tbl_rev = $dbw->tableName( 'revision' );
@@ -996,7 +981,7 @@ abstract class Maintenance {
}
# Done
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
}
/**
@@ -1004,7 +989,7 @@ abstract class Maintenance {
* @return string
*/
protected function getDir() {
- return dirname( __FILE__ );
+ return __DIR__;
}
/**
@@ -1025,10 +1010,9 @@ abstract class Maintenance {
protected static function getCoreScripts() {
if ( !self::$mCoreScripts ) {
$paths = array(
- dirname( __FILE__ ),
- dirname( __FILE__ ) . '/gearman',
- dirname( __FILE__ ) . '/language',
- dirname( __FILE__ ) . '/storage',
+ __DIR__,
+ __DIR__ . '/language',
+ __DIR__ . '/storage',
);
self::$mCoreScripts = array();
foreach ( $paths as $p ) {
@@ -1080,7 +1064,7 @@ abstract class Maintenance {
/**
* Lock the search index
- * @param &$db Database object
+ * @param &$db DatabaseBase object
*/
private function lockSearchindex( &$db ) {
$write = array( 'searchindex' );
@@ -1090,7 +1074,7 @@ abstract class Maintenance {
/**
* Unlock the tables
- * @param &$db Database object
+ * @param &$db DatabaseBase object
*/
private function unlockSearchindex( &$db ) {
$db->unlockTables( __CLASS__ . '::' . __METHOD__ );
@@ -1099,7 +1083,7 @@ abstract class Maintenance {
/**
* Unlock and lock again
* Since the lock is low-priority, queued reads will be able to complete
- * @param &$db Database object
+ * @param &$db DatabaseBase object
*/
private function relockSearchindex( &$db ) {
$this->unlockSearchindex( $db );
@@ -1147,7 +1131,7 @@ abstract class Maintenance {
/**
* Update the searchindex table for a given pageid
- * @param $dbw Database: a database write handle
+ * @param $dbw DatabaseBase a database write handle
* @param $pageId Integer: the page ID to update.
* @return null|string
*/