MediaWiki REL1_37
|
Maintenance script that generates a sitemap for the site. More...
Public Member Functions | |
__construct () | |
Default constructor. | |
execute () | |
Execute. | |
main () | |
Main loop. | |
Public Member Functions inherited from Maintenance | |
checkRequiredExtensions () | |
Verify that the required extensions are installed. | |
cleanupChanneled () | |
Clean up channeled output. | |
clearParamsAndArgs () | |
Clear all params and arguments. | |
finalSetup () | |
Handle some last-minute setup here. | |
getConfig () | |
getDbType () | |
Does the script need different DB access? By default, we give Maintenance scripts normal rights to the DB. | |
getName () | |
Get the script's name. | |
globals () | |
Potentially debug globals. | |
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. | |
loadSettings () | |
Generic setup for most installs. | |
loadWithArgv ( $argv) | |
Load params and arguments from a given array of command-line arguments. | |
memoryLimit () | |
Normally we disable the memory_limit when running admin scripts. | |
outputChanneled ( $msg, $channel=null) | |
Message outputter with channeled message support. | |
purgeRedundantText ( $delete=true) | |
Support function for cleaning up redundant text records. | |
runChild ( $maintClass, $classFile=null) | |
Run a child maintenance script. | |
setAgentAndTriggers () | |
This method used to be for internal use by doMaintenance.php to apply some optional global state to LBFactory for debugging purposes. | |
setConfig (Config $config) | |
setDB (IMaintainableDatabase $db) | |
Sets database object to be returned by getDB(). | |
setup () | |
Do some sanity checking and basic setup. | |
shutdown () | |
Call before shutdown to run any deferred updates. | |
validateParamsAndArgs () | |
Run some validation checks on the params, etc. | |
Public Attributes | |
bool | $compress |
Whether or not to use compression. | |
IDatabase | $dbr |
A database replica DB object. | |
resource false | $file |
A resource pointing to a sitemap file. | |
resource | $findex |
A resource pointing to the sitemap index file. | |
string | $fspath |
The path to prepend to the filename. | |
array | $limit = [] |
The number of entries to save in each sitemap file. | |
array | $namespaces = [] |
A one-dimensional array of namespaces in the wiki. | |
array | $priorities = [] |
Key => value entries of namespaces and their priorities. | |
int | $size_limit |
The maximum size of a sitemap file. | |
bool | $skipRedirects |
Whether or not to include redirection pages. | |
string | $timestamp |
When this sitemap batch was generated. | |
int | $url_limit |
The maximum amount of urls in a sitemap file. | |
string | $urlpath |
The URL path to prepend to filenames in the index; should resolve to the same directory as $fspath. | |
Public Attributes inherited from Maintenance | |
resource null | $fileHandle |
Used when creating separate schema files. | |
array | $orderedOptions = [] |
Used to read the options in the order they were passed. | |
const | DB_ADMIN = 2 |
const | DB_NONE = 0 |
Constants for DB access type. | |
const | DB_STD = 1 |
const | STDIN_ALL = -1 |
Private Member Functions | |
close (&$handle) | |
gzclose() / fclose() wrapper | |
closeFile () | |
Return the XML required to close sitemap file. | |
closeIndex () | |
Return the XML required to close a sitemap index file. | |
fileEntry ( $url, $date, $priority) | |
Return the XML for a single sitemap entry. | |
generateLimit ( $namespace) | |
Populate $this->limit. | |
generateNamespaces () | |
Generate a one-dimensional array of existing namespaces. | |
getPageRes ( $namespace) | |
Return a database resolution of all the pages in a given namespace. | |
guessPriority ( $namespace) | |
If the namespace isn't listed on the priority list return the default priority for the namespace, varies depending on whether it's a talkpage or not. | |
indexEntry ( $filename) | |
Return the XML for a single sitemap indexfile entry. | |
open ( $file, $flags) | |
gzopen() / fopen() wrapper | |
openFile () | |
Return the XML required to open a sitemap file. | |
openIndex () | |
Return the XML required to open a sitemap index file. | |
priority ( $namespace) | |
Get the priority of a given namespace. | |
setNamespacePriorities () | |
sitemapFilename ( $namespace, $count) | |
Get a sitemap filename. | |
write (&$handle, $str) | |
gzwrite() / fwrite() wrapper | |
xmlHead () | |
Return the XML required to open an XML file. | |
xmlSchema () | |
Return the XML schema being used. | |
Private Attributes | |
string | $identifier |
Identifier to use in filenames, default $wgDBname. | |
const | GS_MAIN = -2 |
const | GS_TALK = -1 |
Additional Inherited Members | |
Static Public Member Functions inherited from Maintenance | |
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). | |
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. | |
static | readconsole ( $prompt='> ') |
Prompt the console for input. | |
static | requireTestsAutoloader () |
Call this to set up the autoloader to allow classes to be used from the tests directory. | |
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) | |
Protected Member Functions inherited from Maintenance | |
activateProfiler () | |
Activate the profiler (assuming $wgProfiler is set) | |
addArg ( $arg, $description, $required=true) | |
Add some args that are needed. | |
addDefaultParams () | |
Add the default parameters to the scripts. | |
addDescription ( $text) | |
Set the description text. | |
addOption ( $name, $description, $required=false, $withArg=false, $shortName=false, $multiOccurrence=false) | |
Add a parameter to the script. | |
adjustMemoryLimit () | |
Adjusts PHP's memory limit to better suit our needs, if needed. | |
afterFinalSetup () | |
Execute a callback function at the end of initialisation. | |
beginTransaction (IDatabase $dbw, $fname) | |
Begin a transaction on a DB. | |
commitTransaction (IDatabase $dbw, $fname) | |
Commit the transaction on a DB handle and wait for replica DBs to catch up. | |
countDown ( $seconds) | |
Count down from $seconds to zero on the terminal, with a one-second pause between showing each number. | |
deleteOption ( $name) | |
Remove an option. | |
error ( $err, $die=0) | |
Throw an error to the user. | |
fatalError ( $msg, $exitCode=1) | |
Output a message and terminate the current script. | |
getArg ( $argId=0, $default=null) | |
Get an argument. | |
getBatchSize () | |
Returns batch size. | |
getDB ( $db, $groups=[], $dbDomain=false) | |
Returns a database to be used by current maintenance script. | |
getDir () | |
Get the maintenance directory. | |
getHookContainer () | |
Get a HookContainer, for running extension hooks or for hook metadata. | |
getHookRunner () | |
Get a HookRunner for running core hooks. | |
getOption ( $name, $default=null) | |
Get an option, or return the default. | |
getStdin ( $len=null) | |
Return input from stdin. | |
hasArg ( $argId=0) | |
Does a given argument exist? | |
hasOption ( $name) | |
Checks to see if a particular option was set. | |
loadSpecialVars () | |
Handle the special variables that are global to all scripts. | |
maybeHelp ( $force=false) | |
Maybe show the help. | |
output ( $out, $channel=null) | |
Throw some output to the user. | |
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). | |
requireExtension ( $name) | |
Indicate that the specified extension must be loaded before the script can run. | |
rollbackTransaction (IDatabase $dbw, $fname) | |
Rollback the transaction on a DB handle. | |
setAllowUnregisteredOptions ( $allow) | |
Sets whether to allow unregistered options, which are options passed to a script that do not match an expected parameter. | |
setBatchSize ( $s=0) | |
showHelp () | |
Definitely show the help. | |
supportsOption ( $name) | |
Checks to see if a particular option in supported. | |
validateUserOption ( $errorMsg) | |
waitForReplication () | |
Wait for replica DBs to catch up. | |
Protected Attributes inherited from Maintenance | |
bool | $mAllowUnregisteredOptions = false |
Allow arbitrary options to be passed, or only specified ones? | |
array | $mArgList = [] |
Desired/allowed args. | |
array | $mArgs = [] |
This is the list of arguments that were actually passed. | |
int null | $mBatchSize = null |
Batch size. | |
$mDbPass | |
$mDbUser | |
string | $mDescription = '' |
A description of the script, children should change this via addDescription() | |
bool | $mInputLoaded = false |
Have we already loaded our user input? | |
array | $mOptions = [] |
This is the list of options that were actually passed. | |
array[] | $mParams = [] |
Array of desired/allowed params. | |
bool | $mQuiet = false |
Special vars for params that are always used. | |
string null | $mSelf |
Name of the script currently running. | |
array | $mShortParamsMap = [] |
Mapping short parameters to long ones. | |
Maintenance script that generates a sitemap for the site.
Definition at line 40 of file generateSitemap.php.
GenerateSitemap::__construct | ( | ) |
Default constructor.
Children should call this first if implementing their own constructors
Reimplemented from Maintenance.
Definition at line 147 of file generateSitemap.php.
References Maintenance\addDescription(), and Maintenance\addOption().
|
private |
gzclose() / fclose() wrapper
resource | &$handle |
Definition at line 460 of file generateSitemap.php.
Referenced by main().
|
private |
Return the XML required to close sitemap file.
Definition at line 563 of file generateSitemap.php.
Referenced by generateLimit(), and main().
|
private |
Return the XML required to close a sitemap index file.
Definition at line 528 of file generateSitemap.php.
Referenced by main().
GenerateSitemap::execute | ( | ) |
Execute.
Reimplemented from Maintenance.
Definition at line 181 of file generateSitemap.php.
References $fspath, DB_REPLICA, Maintenance\fatalError(), generateNamespaces(), getDB(), Maintenance\getOption(), Maintenance\hasOption(), main(), setNamespacePriorities(), wfMkdirParents(), wfTimestamp(), and wfTimestampNow().
|
private |
Return the XML for a single sitemap entry.
string | $url | An RFC 2396 compliant URL |
string | $date | A ISO 8601 date |
string | $priority | A priority indicator, 0.0 - 1.0 inclusive with a 0.1 stepsize |
Definition at line 549 of file generateSitemap.php.
Referenced by generateLimit(), and main().
|
private |
Populate $this->limit.
int | $namespace |
Definition at line 572 of file generateSitemap.php.
References $title, closeFile(), fileEntry(), openFile(), priority(), and wfTimestamp().
Referenced by main().
|
private |
Generate a one-dimensional array of existing namespaces.
Definition at line 254 of file generateSitemap.php.
References $res, and $wgSitemapNamespaces.
Referenced by execute().
|
private |
Return a database resolution of all the pages in a given namespace.
int | $namespace | Limit the query to this namespace |
Definition at line 308 of file generateSitemap.php.
Referenced by main().
|
private |
If the namespace isn't listed on the priority list return the default priority for the namespace, varies depending on whether it's a talkpage or not.
int | $namespace | The namespace to get the priority for |
Definition at line 296 of file generateSitemap.php.
References GS_MAIN, and GS_TALK.
Referenced by priority().
|
private |
Return the XML for a single sitemap indexfile entry.
string | $filename | The filename of the sitemap file |
Definition at line 514 of file generateSitemap.php.
References PROTO_CANONICAL, and wfGetServerUrl().
Referenced by main().
GenerateSitemap::main | ( | ) |
Main loop.
Definition at line 336 of file generateSitemap.php.
References $res, $title, close(), closeFile(), closeIndex(), fileEntry(), generateLimit(), getPageRes(), indexEntry(), open(), openFile(), openIndex(), Maintenance\output(), sitemapFilename(), wfTimestamp(), and write().
Referenced by execute().
|
private |
gzopen() / fopen() wrapper
string | $file | |
string | $flags |
Definition at line 428 of file generateSitemap.php.
References $file.
Referenced by main().
|
private |
Return the XML required to open a sitemap file.
Definition at line 537 of file generateSitemap.php.
References xmlHead(), and xmlSchema().
Referenced by generateLimit(), and main().
|
private |
Return the XML required to open a sitemap index file.
Definition at line 504 of file generateSitemap.php.
References xmlHead(), and xmlSchema().
Referenced by main().
|
private |
Get the priority of a given namespace.
int | $namespace | The namespace to get the priority for |
Definition at line 284 of file generateSitemap.php.
References guessPriority().
Referenced by generateLimit().
|
private |
Definition at line 209 of file generateSitemap.php.
References $wgSitemapNamespacesPriorities, GS_MAIN, GS_TALK, NS_CATEGORY, NS_CATEGORY_TALK, NS_FILE, NS_FILE_TALK, NS_HELP, NS_HELP_TALK, NS_MAIN, NS_MEDIAWIKI, NS_MEDIAWIKI_TALK, NS_PROJECT, NS_PROJECT_TALK, NS_TALK, NS_TEMPLATE, NS_TEMPLATE_TALK, NS_USER, and NS_USER_TALK.
Referenced by execute().
|
private |
Get a sitemap filename.
int | $namespace | |
int | $count |
Definition at line 475 of file generateSitemap.php.
References $ext.
Referenced by main().
|
private |
gzwrite() / fwrite() wrapper
resource | &$handle | |
string | $str |
Definition at line 444 of file generateSitemap.php.
Referenced by main().
|
private |
Return the XML required to open an XML file.
Definition at line 486 of file generateSitemap.php.
Referenced by openFile(), and openIndex().
|
private |
Return the XML schema being used.
Definition at line 495 of file generateSitemap.php.
Referenced by openFile(), and openIndex().
bool GenerateSitemap::$compress |
Whether or not to use compression.
Definition at line 82 of file generateSitemap.php.
IDatabase GenerateSitemap::$dbr |
A database replica DB object.
Definition at line 124 of file generateSitemap.php.
resource false GenerateSitemap::$file |
A resource pointing to a sitemap file.
Definition at line 138 of file generateSitemap.php.
Referenced by open().
resource GenerateSitemap::$findex |
A resource pointing to the sitemap index file.
Definition at line 131 of file generateSitemap.php.
string GenerateSitemap::$fspath |
The path to prepend to the filename.
Definition at line 67 of file generateSitemap.php.
Referenced by execute().
|
private |
Identifier to use in filenames, default $wgDBname.
Definition at line 145 of file generateSitemap.php.
array GenerateSitemap::$limit = [] |
The number of entries to save in each sitemap file.
Definition at line 96 of file generateSitemap.php.
array GenerateSitemap::$namespaces = [] |
A one-dimensional array of namespaces in the wiki.
Definition at line 110 of file generateSitemap.php.
array GenerateSitemap::$priorities = [] |
Key => value entries of namespaces and their priorities.
Definition at line 103 of file generateSitemap.php.
int GenerateSitemap::$size_limit |
The maximum size of a sitemap file.
http://www.sitemaps.org/faq.php#faq_sitemap_size
Definition at line 60 of file generateSitemap.php.
bool GenerateSitemap::$skipRedirects |
Whether or not to include redirection pages.
Definition at line 89 of file generateSitemap.php.
string GenerateSitemap::$timestamp |
When this sitemap batch was generated.
Definition at line 117 of file generateSitemap.php.
int GenerateSitemap::$url_limit |
The maximum amount of urls in a sitemap file.
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd
Definition at line 51 of file generateSitemap.php.
string GenerateSitemap::$urlpath |
The URL path to prepend to filenames in the index; should resolve to the same directory as $fspath.
Definition at line 75 of file generateSitemap.php.
|
private |
Definition at line 41 of file generateSitemap.php.
Referenced by guessPriority(), and setNamespacePriorities().
|
private |
Definition at line 42 of file generateSitemap.php.
Referenced by guessPriority(), and setNamespacePriorities().