Manual:Shell.php

shell.php is a maint>Special:MyLanguage/Manual:Maintenance scripts|maintenance script that is located in the maintenance directory that you can use to play live with MediaWiki objects and functions. It is based on PsySH; it replaces eval>Special:MyLanguage/Manual:Eval.php|eval.php which is less robust and has less features.

 $ php maintenance/shell.php Psy Shell v0.8.5 (PHP 5.6.30-0+deb8u1 — cli) by Justin Hileman

>>> User::newFromName('Foo') => User {#1075 +mId: null, +mName: "Foo", +mRealName: null, +mEmail: null, +mTouched: null, +mEmailAuthenticated: null, +mOptionsLoaded: false, +mFrom: "name", +mBlockedby: -1, +mRights: null, +mHideName: null, +mOptions: null, +mBlock: null, }

>>> ls Message Class Constants: FORMAT_BLOCK_PARSE, FORMAT_ESCAPED, FORMAT_PARSE, FORMAT_PLAIN, FORMAT_TEXT Class Methods: __construct, __toString, bitrateParam, bitrateParams, content, durationParam, durationParams, escaped, exists, expiryParam, expiryParams, getFormat, getKey, getKeysToTry, getLanguage, getParams, getTitle, inContentLanguage, inLanguage, isBlank, isDisabled, isMultiKey, listParam, newFallbackSequence, newFromKey, newFromSpecifier, numParam, numParams, params, parse, parseAsBlock, plain, plaintextParam, plaintextParams, rawParam, rawParams, serialize, setContext, setInterfaceMessageFlag, sizeParam, sizeParams, text, timeperiodParam, timeperiodParams, title, toString, unserialize, useDatabase

>>> doc Message::setContext public function setContext(IContextSource $context)

Description: Set the language and the title from a context object

Param: IContextSource $context

Return: Message $this

Since: 1.19

Some debugging is also possible:

 $ php maintenance/shell.php -d 2 [debug] [DBReplication] Wikimedia\Rdbms\LBFactory::getChronologyProtector: using request info { "IPAddress": "", "UserAgent": "", "ChronologyProtection": "true" } [debug] [DBConnection] Wikimedia\Rdbms\LoadBalancer::openConnection: calling initLB before first connection. [debug] [DBConnection] Connected to database 0 at '127.0.0.1'. [debug] [DBQuery] wiki SHOW /* Wikimedia\Rdbms\DatabaseMysqlBase::serverIsReadOnly */ GLOBAL VARIABLES LIKE 'read_only' [debug] [DBQuery] SHOW GLOBAL VARIABLES LIKE 'read_only' Psy Shell v0.8.5 (PHP 5.6.30-0+deb8u1 — cli) by Justin Hileman

>>> wfMessage("Recentchanges")->text [debug] [CryptRand] mcrypt_create_iv generated 20 bytes of randomness. [debug] [CryptRand] 0 bytes of randomness leftover in the buffer. [info] [MessageCache] MessageCache::load: Loading en... local cache is empty, got from global cache => "Recent changes"

>>> wfMessage("Recentchanges")->keysToTry PHP error: Cannot access protected property Message::$keysToTry on line 2

>>> sudo wfMessage("Recentchanges")->keysToTry => [    "Recentchanges", ]