MediaWiki REL1_31
shell.php
Go to the documentation of this file.
1<?php
40
41require_once __DIR__ . '/Maintenance.php';
42
48
49 public function __construct() {
50 parent::__construct();
51 $this->addOption( 'd',
52 'For back compatibility with eval.php. ' .
53 '1 send debug to stderr. ' .
54 'With 2 additionally initialize database with debugging ',
55 false, true
56 );
57 }
58
59 public function execute() {
60 if ( !class_exists( \Psy\Shell::class ) ) {
61 $this->fatalError( 'PsySH not found. Please run composer with the --dev option.' );
62 }
63
64 $traverser = new \PhpParser\NodeTraverser();
65 $codeCleaner = new \Psy\CodeCleaner( null, null, $traverser );
66
67 // add this after initializing the code cleaner so all the default passes get added first
68 $traverser->addVisitor( new CodeCleanerGlobalsPass() );
69
70 $config = new \Psy\Configuration( [ 'codeCleaner' => $codeCleaner ] );
71 $config->setUpdateCheck( \Psy\VersionUpdater\Checker::NEVER );
72 $shell = new \Psy\Shell( $config );
73 if ( $this->hasOption( 'd' ) ) {
74 $this->setupLegacy();
75 }
76
77 $shell->run();
78 }
79
83 protected function setupLegacy() {
84 $d = intval( $this->getOption( 'd' ) );
85 if ( $d > 0 ) {
86 LoggerFactory::registerProvider( new ConsoleSpi );
87 // Some services hold Logger instances in object properties
88 MediaWikiServices::resetGlobalInstance();
89 }
90 if ( $d > 1 ) {
91 # Set DBO_DEBUG (equivalent of $wgDebugDumpSql)
92 wfGetDB( DB_MASTER )->setFlag( DBO_DEBUG );
93 wfGetDB( DB_REPLICA )->setFlag( DBO_DEBUG );
94 }
95 }
96
97}
98
99$maintClass = MediaWikiShell::class;
100require_once RUN_MAINTENANCE_IF_MAIN;
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
Prefix the real command with a bunch of 'global $VAR;' commands, one for each global.
Abstract maintenance class for quickly writing and churning out maintenance scripts with minimal effo...
hasOption( $name)
Checks to see if a particular param exists.
addOption( $name, $description, $required=false, $withArg=false, $shortName=false, $multiOccurrence=false)
Add a parameter to the script.
getOption( $name, $default=null)
Get an option, or return the default.
Config $config
Accessible via getConfig()
fatalError( $msg, $exitCode=1)
Output a message and terminate the current script.
Interactive shell with completion and global scope.
Definition shell.php:47
execute()
Do the actual work.
Definition shell.php:59
setupLegacy()
For back compatibility with eval.php.
Definition shell.php:83
__construct()
Default constructor.
Definition shell.php:49
PSR-3 logger instance factory.
MediaWikiServices is the service locator for the application scope of MediaWiki.
require_once RUN_MAINTENANCE_IF_MAIN
const DB_REPLICA
Definition defines.php:25
const DB_MASTER
Definition defines.php:29
const DBO_DEBUG
Definition defines.php:9
$maintClass
Definition shell.php:99