X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FMaintenance.php;h=f741cd2653f340826cf84eaddd334ecf5d48186e;hb=326d52f9613c5227d75f97361be6ec6ef78b214e;hp=0263425508a5e61745eaa20d177abb8d3d2c6e5d;hpb=1cc50ab8f5f94c753781a875fa91e9fea7a9dcc9;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/Maintenance.php b/maintenance/Maintenance.php index 0263425508..f741cd2653 100644 --- a/maintenance/Maintenance.php +++ b/maintenance/Maintenance.php @@ -20,6 +20,8 @@ * @defgroup Maintenance Maintenance */ +define( 'MW_ENTRY_POINT', 'cli' ); + // Bail on old versions of PHP, or if composer has not been run yet to install // dependencies. require_once __DIR__ . '/../includes/PHPVersionCheck.php'; @@ -89,7 +91,11 @@ abstract class Maintenance { // Const for getStdin() const STDIN_ALL = 'all'; - // Array of desired/allowed params + /** + * Array of desired/allowed params + * @var array[] + * @phan-var array + */ protected $mParams = []; // Array of mapping short parameters to long ones @@ -128,9 +134,17 @@ abstract class Maintenance { */ protected $mBatchSize = null; - // Generic options added by addDefaultParams() + /** + * Generic options added by addDefaultParams() + * @var array[] + * @phan-var array + */ private $mGenericParameters = []; - // Generic options which might or not be supported by the script + /** + * Generic options which might or not be supported by the script + * @var array[] + * @phan-var array + */ private $mDependantParameters = []; /** @@ -573,7 +587,7 @@ abstract class Maintenance { "server name detection may fail in command line scripts.", false, true ); $this->addOption( 'profiler', 'Profiler output format (usually "text")', false, true ); // This is named --mwdebug, because --debug would conflict in the phpunit.php CLI script. - $this->addOption( 'mwdebug', 'Enable built-in MediaWiki development settings', false, true ); + $this->addOption( 'mwdebug', 'Enable built-in MediaWiki development settings', false, false ); # Save generic options to display them separately in help $this->mGenericParameters = $this->mParams; @@ -831,7 +845,7 @@ abstract class Maintenance { + $wgProfiler + [ 'threshold' => $wgProfileLimit ] ); - $profiler->setTemplated( true ); + $profiler->setAllowOutput(); Profiler::replaceStubInstance( $profiler ); } @@ -1235,6 +1249,7 @@ abstract class Maintenance { */ protected function afterFinalSetup() { if ( defined( 'MW_CMDLINE_CALLBACK' ) ) { + // @phan-suppress-next-line PhanUndeclaredConstant call_user_func( MW_CMDLINE_CALLBACK ); } } @@ -1324,6 +1339,7 @@ abstract class Maintenance { $res = $dbw->select( 'content', 'content_address', [], __METHOD__, [ 'DISTINCT' ] ); $blobStore = MediaWikiServices::getInstance()->getBlobStore(); foreach ( $res as $row ) { + // @phan-suppress-next-line PhanUndeclaredMethod $textId = $blobStore->getTextIdFromAddress( $row->content_address ); if ( $textId ) { $cur[] = $textId; @@ -1366,28 +1382,34 @@ abstract class Maintenance { } /** - * Returns a database to be used by current maintenance script. It can be set by setDB(). - * If not set, wfGetDB() will be used. - * This function has the same parameters as wfGetDB() + * Returns a database to be used by current maintenance script. + * + * This uses the main LBFactory instance by default unless overriden via setDB(). + * + * This function has the same parameters as LoadBalancer::getConnection(). * * @param int $db DB index (DB_REPLICA/DB_MASTER) * @param string|string[] $groups default: empty array - * @param string|bool $wiki default: current wiki + * @param string|bool $dbDomain default: current wiki * @return IMaintainableDatabase */ - protected function getDB( $db, $groups = [], $wiki = false ) { + protected function getDB( $db, $groups = [], $dbDomain = false ) { if ( $this->mDb === null ) { - return wfGetDB( $db, $groups, $wiki ); + return MediaWikiServices::getInstance() + ->getDBLoadBalancerFactory() + ->getMainLB( $dbDomain ) + ->getMaintenanceConnectionRef( $db, $groups, $dbDomain ); } + return $this->mDb; } /** * Sets database object to be returned by getDB(). * - * @param IDatabase $db + * @param IMaintainableDatabase $db */ - public function setDB( IDatabase $db ) { + public function setDB( IMaintainableDatabase $db ) { $this->mDb = $db; } @@ -1529,7 +1551,7 @@ abstract class Maintenance { $title = $titleObj->getPrefixedDBkey(); $this->output( "$title..." ); # Update searchindex - $u = new SearchUpdate( $pageId, $titleObj->getText(), $rev->getContent() ); + $u = new SearchUpdate( $pageId, $titleObj, $rev->getContent() ); $u->doUpdate(); $this->output( "\n" ); }