MediaWiki
master
|
Maintenance script that checks for articles to fix after adding/deleting namespaces. More...
Public Member Functions | |
__construct () | |
Default constructor. More... | |
execute () | |
Do the actual work. More... | |
![]() | |
checkRequiredExtensions () | |
Verify that the required extensions are installed. More... | |
cleanupChanneled () | |
Clean up channeled output. More... | |
clearParamsAndArgs () | |
Clear all params and arguments. More... | |
finalSetup (SettingsBuilder $settingsBuilder=null) | |
Handle some last-minute setup here. More... | |
getConfig () | |
getDbType () | |
Does the script need different DB access? By default, we give Maintenance scripts normal rights to the DB. More... | |
getName () | |
Get the script's name. More... | |
globals () | |
Potentially debug globals. More... | |
isQuiet () | |
loadParamsAndArgs ( $self=null, $opts=null, $args=null) | |
Process command line arguments $mOptions becomes an array with keys set to the option names $mArgs becomes a zero-based array containing the non-option arguments. More... | |
loadSettings () | |
Generic setup for most installs. More... | |
loadWithArgv ( $argv) | |
Load params and arguments from a given array of command-line arguments. More... | |
memoryLimit () | |
Normally we disable the memory_limit when running admin scripts. More... | |
outputChanneled ( $msg, $channel=null) | |
Message outputter with channeled message support. More... | |
purgeRedundantText ( $delete=true) | |
Support function for cleaning up redundant text records. More... | |
runChild ( $maintClass, $classFile=null) | |
Run a child maintenance script. More... | |
setAgentAndTriggers () | |
This method used to be for internal use by doMaintenance.php to apply some optional global state to LBFactory for debugging purposes. More... | |
setConfig (Config $config) | |
setDB (IMaintainableDatabase $db) | |
Sets database object to be returned by getDB(). More... | |
setup () | |
Do some checking and basic setup. More... | |
shutdown () | |
Call before exiting CLI process for the last DB commit, and flush any remaining buffers and other deferred work. More... | |
validateParamsAndArgs () | |
Run some validation checks on the params, etc. More... | |
Protected Attributes | |
IMaintainableDatabase | $db |
![]() | |
bool | $mAllowUnregisteredOptions = false |
Allow arbitrary options to be passed, or only specified ones? More... | |
array | $mArgList = [] |
Desired/allowed args. More... | |
array | $mArgs = [] |
This is the list of arguments that were actually passed. More... | |
int null | $mBatchSize = null |
Batch size. More... | |
$mDbUser | |
string | $mDescription = '' |
A description of the script, children should change this via addDescription() More... | |
bool | $mInputLoaded = false |
Have we already loaded our user input? More... | |
array | $mOptions = [] |
This is the list of options that were actually passed. More... | |
array[] | $mParams = [] |
Array of desired/allowed params. More... | |
bool | $mQuiet = false |
Special vars for params that are always used. More... | |
string null | $mSelf |
Name of the script currently running. More... | |
array | $mShortParamsMap = [] |
Mapping short parameters to long ones. More... | |
Private Member Functions | |
canMerge ( $id, LinkTarget $linkTarget, &$logStatus) | |
Determine if we can merge a page. More... | |
checkAll ( $options) | |
Check all namespaces. More... | |
checkLinkTable ( $table, $fieldPrefix, $ns, $name, $options, $extraConds=[]) | |
Check and repair the destination fields in a link table. More... | |
checkNamespace ( $ns, $name, $options) | |
Check a given prefix and try to move it into the given destination namespace. More... | |
checkPrefix ( $options) | |
Move the given pseudo-namespace, either replacing the colon with a hyphen (useful for pseudo-namespaces that conflict with interwiki links) or move them to another namespace if specified. More... | |
getAlternateTitle ( $ns, $dbk, $options) | |
Get an alternative title to move a page to. More... | |
getDestination ( $ns, $name, $sourceNs, $sourceDbk) | |
Get the preferred destination for a given target page. More... | |
getDestinationTitle ( $ns, $name, $sourceNs, $sourceDbk) | |
Get the preferred destination title for a given target page. More... | |
getInterwikiList () | |
getTargetList ( $ns, $name, $options) | |
Find pages in main and talk namespaces that have a prefix of the new namespace so we know titles that will need migrating. More... | |
mergePage ( $row, Title $newTitle) | |
Merge page histories. More... | |
movePage ( $id, LinkTarget $newLinkTarget) | |
Move a page. More... | |
Private Attributes | |
int | $deletedLinks = 0 |
Total number of links deleted because they weren't automatically resolveable due to the target already existing. More... | |
int | $resolvableLinks = 0 |
Total number of links that need fixing that are automatically resolveable. More... | |
int | $resolvablePages = 0 |
Total number of pages that need fixing that are automatically resolveable. More... | |
int | $totalLinks = 0 |
Total number of erroneous links. More... | |
int | $totalPages = 0 |
Total number of pages that need fixing. More... | |
Additional Inherited Members | |
![]() | |
static | getTermSize () |
Get the terminal size as a two-element array where the first element is the width (number of columns) and the second element is the height (number of rows). More... | |
static | posix_isatty ( $fd) |
Wrapper for posix_isatty() We default as considering stdin a tty (for nice readline methods) but treating stout as not a tty to avoid color codes. More... | |
static | readconsole ( $prompt='> ') |
Prompt the console for input. More... | |
static | requireTestsAutoloader () |
Call this to set up the autoloader to allow classes to be used from the tests directory. More... | |
static | shouldExecute () |
Should we execute the maintenance script, or just allow it to be included as a standalone class? It checks that the call stack only includes this function and "requires" (meaning was called from the file scope) More... | |
![]() | |
resource null | $fileHandle |
Used when creating separate schema files. More... | |
$mDbPass | |
array | $orderedOptions = [] |
Used to read the options in the order they were passed. More... | |
const | DB_ADMIN = 2 |
const | DB_NONE = 0 |
Constants for DB access type. More... | |
const | DB_STD = 1 |
const | STDIN_ALL = -1 |
![]() | |
activateProfiler () | |
Activate the profiler (assuming $wgProfiler is set) More... | |
addArg ( $arg, $description, $required=true) | |
Add some args that are needed. More... | |
addDefaultParams () | |
Add the default parameters to the scripts. More... | |
addDescription ( $text) | |
Set the description text. More... | |
addOption ( $name, $description, $required=false, $withArg=false, $shortName=false, $multiOccurrence=false) | |
Add a parameter to the script. More... | |
adjustMemoryLimit () | |
Adjusts PHP's memory limit to better suit our needs, if needed. More... | |
afterFinalSetup () | |
Override to perform any required operation at the end of initialisation. More... | |
beginTransaction (IDatabase $dbw, $fname) | |
Begin a transaction on a DB. More... | |
commitTransaction (IDatabase $dbw, $fname) | |
Commit the transaction on a DB handle and wait for replica DBs to catch up. More... | |
countDown ( $seconds) | |
Count down from $seconds to zero on the terminal, with a one-second pause between showing each number. More... | |
deleteOption ( $name) | |
Remove an option. More... | |
error ( $err, $die=0) | |
Throw an error to the user. More... | |
fatalError ( $msg, $exitCode=1) | |
Output a message and terminate the current script. More... | |
getArg ( $argId=0, $default=null) | |
Get an argument. More... | |
getBatchSize () | |
Returns batch size. More... | |
getDB ( $db, $groups=[], $dbDomain=false) | |
Returns a database to be used by current maintenance script. More... | |
getDir () | |
Get the maintenance directory. More... | |
getHookContainer () | |
Get a HookContainer, for running extension hooks or for hook metadata. More... | |
getHookRunner () | |
Get a HookRunner for running core hooks. More... | |
getOption ( $name, $default=null) | |
Get an option, or return the default. More... | |
getStdin ( $len=null) | |
Return input from stdin. More... | |
hasArg ( $argId=0) | |
Does a given argument exist? More... | |
hasOption ( $name) | |
Checks to see if a particular option was set. More... | |
loadSpecialVars () | |
Handle the special variables that are global to all scripts @stable to override. More... | |
maybeHelp ( $force=false) | |
Maybe show the help. More... | |
output ( $out, $channel=null) | |
Throw some output to the user. More... | |
parseIntList ( $text) | |
Utility function to parse a string (perhaps from a command line option) into a list of integers (perhaps some kind of numeric IDs). More... | |
requireExtension ( $name) | |
Indicate that the specified extension must be loaded before the script can run. More... | |
rollbackTransaction (IDatabase $dbw, $fname) | |
Rollback the transaction on a DB handle. More... | |
setAllowUnregisteredOptions ( $allow) | |
Sets whether to allow unregistered options, which are options passed to a script that do not match an expected parameter. More... | |
setBatchSize ( $s=0) | |
showHelp () | |
Definitely show the help. More... | |
supportsOption ( $name) | |
Checks to see if a particular option in supported. More... | |
validateUserOption ( $errorMsg) | |
waitForReplication () | |
Wait for replica DBs to catch up. More... | |
Maintenance script that checks for articles to fix after adding/deleting namespaces.
Definition at line 43 of file namespaceDupes.php.
NamespaceDupes::__construct | ( | ) |
Default constructor.
Children should call this first if implementing their own constructors
Reimplemented from Maintenance.
Definition at line 81 of file namespaceDupes.php.
References Maintenance\addDescription(), and Maintenance\addOption().
|
private |
Determine if we can merge a page.
We check if an inaccessible revision would become the latest and deny the merge if so – it's theoretically possible to update the latest revision, but opens a can of worms – search engine updates, recentchanges review, etc.
int | $id | The page_id |
LinkTarget | $linkTarget | The new link target |
string | &$logStatus | This is set to the log status message on failure |
Definition at line 637 of file namespaceDupes.php.
Referenced by checkNamespace().
|
private |
Check all namespaces.
array | $options | Associative array of validated command-line options |
Definition at line 133 of file namespaceDupes.php.
References checkLinkTable(), checkNamespace(), Maintenance\getConfig(), getInterwikiList(), and Maintenance\output().
Referenced by execute().
|
private |
Check and repair the destination fields in a link table.
string | $table | The link table name |
string | $fieldPrefix | The field prefix in the link table |
int | $ns | Destination namespace id |
string | $name | |
array | $options | Associative array of validated command-line options |
array | $extraConds | Extra conditions for the SQL query |
Definition at line 367 of file namespaceDupes.php.
References $res, DB_PRIMARY, Maintenance\getDB(), getDestinationTitle(), LIST_AND, LIST_OR, and Maintenance\output().
Referenced by checkAll().
|
private |
Check a given prefix and try to move it into the given destination namespace.
int | $ns | Destination namespace id |
string | $name | |
array | $options | Associative array of validated command-line options |
Definition at line 263 of file namespaceDupes.php.
References canMerge(), getAlternateTitle(), getDestination(), getDestinationTitle(), getTargetList(), mergePage(), movePage(), and Maintenance\output().
Referenced by checkAll(), and checkPrefix().
|
private |
Move the given pseudo-namespace, either replacing the colon with a hyphen (useful for pseudo-namespaces that conflict with interwiki links) or move them to another namespace if specified.
array | $options | Associative array of validated command-line options |
Definition at line 482 of file namespaceDupes.php.
References checkNamespace(), and Maintenance\output().
Referenced by execute().
NamespaceDupes::execute | ( | ) |
Do the actual work.
All child classes will need to implement this
Reimplemented from Maintenance.
Definition at line 102 of file namespaceDupes.php.
References checkAll(), checkPrefix(), Maintenance\getOption(), Maintenance\hasOption(), and Maintenance\output().
|
private |
Get an alternative title to move a page to.
This is used if the preferred destination title already exists.
int | $ns | The destination namespace ID |
string | $dbk | The source DB key (i.e. page_title) |
array | $options | Associative array of validated command-line options |
Definition at line 575 of file namespaceDupes.php.
References Title\makeTitleSafe().
Referenced by checkNamespace().
|
private |
Get the preferred destination for a given target page.
int | $ns | The destination namespace ID |
string | $name | The conflicting prefix |
int | $sourceNs | The source namespace |
string | $sourceDbk | The source DB key (i.e. page_title) |
Definition at line 534 of file namespaceDupes.php.
References NS_TALK.
Referenced by checkNamespace(), and getDestinationTitle().
|
private |
Get the preferred destination title for a given target page.
int | $ns | The destination namespace ID |
string | $name | The conflicting prefix |
int | $sourceNs | The source namespace |
string | $sourceDbk | The source DB key (i.e. page_title) |
Definition at line 557 of file namespaceDupes.php.
References getDestination(), and Title\makeTitleSafe().
Referenced by checkLinkTable(), and checkNamespace().
|
private |
|
private |
Find pages in main and talk namespaces that have a prefix of the new namespace so we know titles that will need migrating.
int | $ns | Destination namespace id |
string | $name | Prefix that is being made a namespace |
array | $options | Associative array of validated command-line options |
Definition at line 500 of file namespaceDupes.php.
References DB_PRIMARY, Maintenance\getDB(), NS_MAIN, and NS_TALK.
Referenced by checkNamespace().
|
private |
Merge page histories.
Definition at line 658 of file namespaceDupes.php.
References DeferredUpdates\addUpdate(), Maintenance\beginTransaction(), Maintenance\commitTransaction(), DB_PRIMARY, DeferredUpdates\doUpdates(), Title\getArticleID(), Maintenance\getDB(), and Title\makeTitle().
Referenced by checkNamespace().
|
private |
Move a page.
int | $id | The page_id |
LinkTarget | $newLinkTarget | The new title link target |
Definition at line 592 of file namespaceDupes.php.
References DB_PRIMARY, Maintenance\getDB(), MediaWiki\Linker\LinkTarget\getDBkey(), and MediaWiki\Linker\LinkTarget\getNamespace().
Referenced by checkNamespace().
|
protected |
Definition at line 48 of file namespaceDupes.php.
|
private |
Total number of links deleted because they weren't automatically resolveable due to the target already existing.
Definition at line 79 of file namespaceDupes.php.
|
private |
Total number of links that need fixing that are automatically resolveable.
Definition at line 66 of file namespaceDupes.php.
|
private |
Total number of pages that need fixing that are automatically resolveable.
Definition at line 54 of file namespaceDupes.php.
|
private |
Total number of erroneous links.
Definition at line 72 of file namespaceDupes.php.
|
private |
Total number of pages that need fixing.
Definition at line 60 of file namespaceDupes.php.