X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=maintenance%2FMaintenance.php;h=ea649a603e3e93951693ed591743aaf31ff22750;hb=e34865144f3f21bb8b0ad4ba76d3d10490a73462;hp=cec12709625a482ff973a32cafbd103b52023573;hpb=90db14df05c04502316f15faf35e670358dd0b78;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/Maintenance.php b/maintenance/Maintenance.php index cec1270962..ea649a603e 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.3.2' ) < 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 @@ -123,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 ); @@ -481,19 +482,11 @@ abstract class Maintenance { $this->error( 'Cannot get command line arguments, register_argc_argv is set to false', true ); } - if ( version_compare( phpversion(), '5.2.4' ) >= 0 ) { - // Send PHP warnings and errors to stderr instead of stdout. - // This aids in diagnosing problems, while keeping messages - // out of redirected output. - if ( ini_get( 'display_errors' ) ) { - ini_set( 'display_errors', 'stderr' ); - } - - // Don't touch the setting on earlier versions of PHP, - // as setting it would disable output if you'd wanted it. - - // Note that exceptions are also sent to stderr when - // command-line mode is on, regardless of PHP version. + // Send PHP warnings and errors to stderr instead of stdout. + // This aids in diagnosing problems, while keeping messages + // out of redirected output. + if ( ini_get( 'display_errors' ) ) { + ini_set( 'display_errors', 'stderr' ); } $this->loadParamsAndArgs(); @@ -988,7 +981,7 @@ abstract class Maintenance { * @return string */ protected function getDir() { - return dirname( __FILE__ ); + return __DIR__; } /** @@ -1009,9 +1002,9 @@ abstract class Maintenance { protected static function getCoreScripts() { if ( !self::$mCoreScripts ) { $paths = array( - dirname( __FILE__ ), - dirname( __FILE__ ) . '/language', - dirname( __FILE__ ) . '/storage', + __DIR__, + __DIR__ . '/language', + __DIR__ . '/storage', ); self::$mCoreScripts = array(); foreach ( $paths as $p ) { @@ -1067,7 +1060,7 @@ abstract class Maintenance { */ private function lockSearchindex( &$db ) { $write = array( 'searchindex' ); - $read = array( 'page', 'revision', 'text', 'interwiki', 'l10n_cache' ); + $read = array( 'page', 'revision', 'text', 'interwiki', 'l10n_cache', 'user' ); $db->lockTables( $read, $write, __CLASS__ . '::' . __METHOD__ ); } @@ -1143,7 +1136,8 @@ abstract class Maintenance { $title = $titleObj->getPrefixedDBkey(); $this->output( "$title..." ); # Update searchindex - $u = new SearchUpdate( $pageId, $titleObj->getText(), $rev->getText() ); + # TODO: pass the Content object to SearchUpdate, let the search engine decide how to deal with it. + $u = new SearchUpdate( $pageId, $titleObj->getText(), $rev->getContent()->getTextForSearchIndex() ); $u->doUpdate(); $this->output( "\n" ); }