use MediaWiki\Logger\LoggerFactory;
use MediaWiki\Logger\ConsoleSpi;
+use MediaWiki\MediaWikiServices;
require_once __DIR__ . '/Maintenance.php';
parent::__construct();
$this->addOption( 'd',
'For back compatibility with eval.php. ' .
- '0 send debug to stderr. ' .
- 'With 1 additionally initialize database with debugging ',
+ '1 send debug to stderr. ' .
+ 'With 2 additionally initialize database with debugging ',
false, true
);
}
public function execute() {
if ( !class_exists( \Psy\Shell::class ) ) {
- $this->error( 'PsySH not found. Please run composer with the --dev option.', 1 );
+ $this->fatalError( 'PsySH not found. Please run composer with the --dev option.' );
}
$traverser = new \PhpParser\NodeTraverser();
$d = intval( $this->getOption( 'd' ) );
if ( $d > 0 ) {
LoggerFactory::registerProvider( new ConsoleSpi );
+ // Some services hold Logger instances in object properties
+ MediaWikiServices::resetGlobalInstance();
}
if ( $d > 1 ) {
# Set DBO_DEBUG (equivalent of $wgDebugDumpSql)
- # XXX copy pasted from eval.php :(
- $lb = wfGetLB();
- $serverCount = $lb->getServerCount();
- for ( $i = 0; $i < $serverCount; $i++ ) {
- $server = $lb->getServerInfo( $i );
- $server['flags'] |= DBO_DEBUG;
- $lb->setServerInfo( $i, $server );
- }
+ wfGetDB( DB_MASTER )->setFlag( DBO_DEBUG );
+ wfGetDB( DB_REPLICA )->setFlag( DBO_DEBUG );
}
}
}
-$maintClass = 'MediaWikiShell';
+$maintClass = MediaWikiShell::class;
require_once RUN_MAINTENANCE_IF_MAIN;