|
MediaWiki
1.23.0
|
This is the main query class. More...


Public Member Functions | |
| __construct ( $main, $action) | |
| execute () | |
| Query execution happens in the following steps: #1 Create a PageSet object with any pages requested by the user #2 If using a generator, execute it to get a new ApiPageSet object #3 Instantiate all requested modules. More... | |
| getAllowedParams ( $flags=0) | |
| getCustomPrinter () | |
| getDescription () | |
| Returns the description string for this module. More... | |
| getExamples () | |
| Returns usage examples for this module. More... | |
| getGenerators () | |
| Get the generators array mapping module names to class names. More... | |
| getHelpUrls () | |
| getModuleManager () | |
| Overrides to return this instance's module manager. More... | |
| getModules () | |
| Get the array mapping module names to class names. More... | |
| getModuleType ( $moduleName) | |
| Get whether the specified module is a prop, list or a meta query module. More... | |
| getNamedDB ( $name, $db, $groups) | |
| Get the query database connection with the given name. More... | |
| getPageSet () | |
| Gets the set of pages the user has requested (or generated) More... | |
| getParamDescription () | |
| Returns an array of parameter descriptions. More... | |
| getPossibleErrors () | |
| Returns a list of all possible errors returned by the module. More... | |
| makeHelpMsg () | |
| Override the parent to generate help messages for all available query modules. More... | |
| setGeneratorContinue ( $module, $paramName, $paramValue) | |
| This method is called by the generator base when generator in the smart-continue mode tries to set 'query-continue' value. More... | |
| shouldCheckMaxlag () | |
| Indicates if this module needs maxlag to be checked. More... | |
Public Member Functions inherited from ApiBase | |
| __construct ( $mainModule, $moduleName, $modulePrefix='') | |
| Constructor. More... | |
| createContext () | |
| Create a new RequestContext object to use e.g. More... | |
| dieReadOnly () | |
| Helper function for readonly errors. More... | |
| dieStatus ( $status) | |
| Throw a UsageException based on the errors in the Status object. More... | |
| dieUsage ( $description, $errorCode, $httpRespCode=0, $extradata=null) | |
| Throw a UsageException, which will (if uncaught) call the main module's error handler and die with an error message. More... | |
| dieUsageMsg ( $error) | |
| Output the error message related to a certain array. More... | |
| dieUsageMsgOrDebug ( $error) | |
| Will only set a warning instead of failing if the global $wgDebugAPI is set to true. More... | |
| encodeParamName ( $paramName) | |
| This method mangles parameter name based on the prefix supplied to the constructor. More... | |
| extractRequestParams ( $parseLimit=true) | |
| Using getAllowedParams(), this function makes an array of the values provided by the user, with key being the name of the variable, and value - validated value from user or default. More... | |
| getErrorFromStatus ( $status) | |
| Get error (as code, string) from a Status object. More... | |
| getFinalDescription () | |
| Get final module description, after hooks have had a chance to tweak it as needed. More... | |
| getFinalParamDescription () | |
| Get final parameter descriptions, after hooks have had a chance to tweak it as needed. More... | |
| getFinalParams ( $flags=0) | |
| Get final list of parameters, after hooks have had a chance to tweak it as needed. More... | |
| getFinalPossibleErrors () | |
| Get final list of possible errors, after hooks have had a chance to tweak it as needed. More... | |
| getFinalResultProperties () | |
| Get final possible result properties, after hooks have had a chance to tweak it as needed. More... | |
| getMain () | |
| Get the main module. More... | |
| getModuleName () | |
| Get the name of the module being executed by this instance. More... | |
| getModulePrefix () | |
| Get parameter prefix (usually two letters or an empty string). More... | |
| getModuleProfileName ( $db=false) | |
| Get the name of the module as shown in the profiler log. More... | |
| getProfileDBTime () | |
| Total time the module used the database. More... | |
| getProfileTime () | |
| Total time the module was executed. More... | |
| getRequireAtLeastOneParameterErrorMessages ( $params) | |
| Generates the possible errors requireAtLeastOneParameter() can die with. More... | |
| getRequireMaxOneParameterErrorMessages ( $params) | |
| Generates the possible error requireMaxOneParameter() can die with. More... | |
| getRequireOnlyOneParameterErrorMessages ( $params) | |
| Generates the possible errors requireOnlyOneParameter() can die with. More... | |
| getResult () | |
| Get the result object. More... | |
| getResultData () | |
| Get the result data array (read-only) More... | |
| getTitleOrPageId ( $params, $load=false) | |
| getTitleOrPageIdErrorMessage () | |
| getTokenSalt () | |
| Returns the token salt if there is one, '' if the module doesn't require a salt, else false if the module doesn't need a token You have also to override needsToken() Value is passed to User::getEditToken. More... | |
| getVersion () | |
| Returns a string that identifies the version of the extending class. More... | |
| getWatchlistUser ( $params) | |
| Gets the user for whom to get the watchlist. More... | |
| isMain () | |
| Returns true if this module is the main module ($this === $this->mMainModule), false otherwise. More... | |
| isReadMode () | |
| Indicates whether this module requires read rights. More... | |
| isWriteMode () | |
| Indicates whether this module requires write mode. More... | |
| makeHelpMsgParameters () | |
| Generates the parameter descriptions for this module, to be displayed in the module's help. More... | |
| mustBePosted () | |
| Indicates whether this module must be called with a POST request. More... | |
| needsToken () | |
| Returns whether this module requires a token to execute It is used to show possible errors in action=paraminfo see bug 25248. More... | |
| parseErrors ( $errors) | |
| Parses a list of errors into a standardised format. More... | |
| parseMsg ( $error) | |
| Return the error message related to a certain array. More... | |
| profileDBIn () | |
| Start module profiling. More... | |
| profileDBOut () | |
| End database profiling. More... | |
| profileIn () | |
| Start module profiling. More... | |
| profileOut () | |
| End module profiling. More... | |
| requireAtLeastOneParameter ( $params) | |
| Die if none of a certain set of parameters is set and not false. More... | |
| requireMaxOneParameter ( $params) | |
| Die if more than one of a certain set of parameters is set and not false. More... | |
| requireOnlyOneParameter ( $params) | |
| Die if none or more than one of a certain set of parameters is set and not false. More... | |
| safeProfileOut () | |
| When modules crash, sometimes it is needed to do a profileOut() regardless of the profiling state the module was in. More... | |
| setWarning ( $warning) | |
| Set warning section for this module. More... | |
| validateLimit ( $paramName, &$value, $min, $max, $botMax=null, $enforceLimits=false) | |
| Validate the value against the minimum and user/bot maximum limits. More... | |
| validateTimestamp ( $value, $encParamName) | |
| Validate and normalize of parameters of type 'timestamp'. More... | |
Public Member Functions inherited from ContextSource | |
| canUseWikiPage () | |
| Check whether a WikiPage object can be get with getWikiPage(). More... | |
| exportSession () | |
| Export the resolved user IP, HTTP headers, user ID, and session ID. More... | |
| getConfig () | |
| Get the Config object. More... | |
| getContext () | |
| Get the RequestContext object. More... | |
| getLang () | |
| Get the Language object. More... | |
| getLanguage () | |
| Get the Language object. More... | |
| getOutput () | |
| Get the OutputPage object. More... | |
| getRequest () | |
| Get the WebRequest object. More... | |
| getSkin () | |
| Get the Skin object. More... | |
| getTitle () | |
| Get the Title object. More... | |
| getUser () | |
| Get the User object. More... | |
| getWikiPage () | |
| Get the WikiPage object. More... | |
| msg () | |
| Get a Message object with context set Parameters are the same as wfMessage() More... | |
| setContext (IContextSource $context) | |
| Set the IContextSource object. More... | |
Protected Member Functions | |
| mergeCacheMode ( $cacheMode, $modCacheMode) | |
| Update a cache mode string, applying the cache mode of a new module to it. More... | |
Protected Member Functions inherited from ApiBase | |
| dieContinueUsageIf ( $condition) | |
| Die with the $prefix. More... | |
| getAllowedParams () | |
| Returns an array of allowed parameters (parameter name) => (default value) or (parameter name) => (array with PARAM_* constants as keys) Don't call this function directly: use getFinalParams() to allow hooks to modify parameters as needed. More... | |
| getDB () | |
| Gets a default slave database connection object. More... | |
| getParameter ( $paramName, $parseLimit=true) | |
| Get a value for the given parameter. More... | |
| getParameterFromSettings ( $paramName, $paramSettings, $parseLimit) | |
| Using the settings determine the value for the given parameter. More... | |
| getResultProperties () | |
| Returns possible properties in the result, grouped by the value of the prop parameter that shows them. More... | |
| getWatchlistValue ( $watchlist, $titleObj, $userOption=null) | |
| Return true if we're to watch the page, false if not, null if no change. More... | |
| makeHelpArrayToString ( $prefix, $title, $input) | |
| parseMultiValue ( $valueName, $value, $allowMultiple, $allowedValues) | |
| Return an array of values that were given in a 'a|b|c' notation, after it optionally validates them against the list allowed values. More... | |
| setWatch ( $watch, $titleObj, $userOption=null) | |
| Set a watch (or unwatch) based the based on a watchlist parameter. More... | |
Private Member Functions | |
| doExport ( $pageSet, $result) | |
| initContinue (&$pagesetParams, &$completeModules) | |
| Parse 'continue' parameter into the list of complete modules and a list of generator parameters. More... | |
| initModules ( $allModules, $completeModules, $usePageset) | |
| Validate sub-modules, filter out completed ones, and do requestExtraData() More... | |
| instantiateModules (&$modules, $param) | |
| Create instances of all modules requested by the client. More... | |
| makeHelpMsgHelper ( $group) | |
| For all modules of a given group, generate help messages and join them together. More... | |
| outputGeneralPageInfo () | |
| Appends an element for each page in the current pageSet with the most general information (id, title), plus any title normalizations and missing or invalid title/pageids/revids. More... | |
Private Attributes | |
| $mGeneratorContinue | |
| $mModuleMgr | |
| $mNamedDB = array() | |
| ApiPageSet | $mPageSet |
| $mParams | |
| $mUseLegacyContinue | |
Static Private Attributes | |
| static | $QueryListModules |
| static | $QueryMetaModules |
| static | $QueryPropModules |
Additional Inherited Members | |
Static Public Member Functions inherited from ApiBase | |
| static | debugPrint ( $value, $name='unknown', $backtrace=false) |
| Debugging function that prints a value and an optional backtrace. More... | |
| static | truncateArray (&$arr, $limit) |
| Truncate an array to a certain length. More... | |
Public Attributes inherited from ApiBase | |
| $mDBTime = 0 | |
| $mModuleName | |
| $mModulePrefix | |
| $mModuleTime = 0 | |
| const | GET_VALUES_FOR_HELP = 1 |
| getAllowedParams() flag: When set, the result could take longer to generate, but should be more thorough. More... | |
| const | LIMIT_BIG1 = 500 |
| const | LIMIT_BIG2 = 5000 |
| const | LIMIT_SML1 = 50 |
| const | LIMIT_SML2 = 500 |
| const | PARAM_ALLOW_DUPLICATES = 6 |
| const | PARAM_DEPRECATED = 7 |
| const | PARAM_DFLT = 0 |
| const | PARAM_ISMULTI = 1 |
| const | PARAM_MAX = 3 |
| const | PARAM_MAX2 = 4 |
| const | PARAM_MIN = 5 |
| const | PARAM_RANGE_ENFORCE = 9 |
| const | PARAM_REQUIRED = 8 |
| const | PARAM_TYPE = 2 |
| const | PROP_LIST = 'LIST' |
| const | PROP_NULLABLE = 1 |
| const | PROP_ROOT = 'ROOT' |
| const | PROP_TYPE = 0 |
Static Public Attributes inherited from ApiBase | |
| static | $messageMap |
| Array that maps message keys to error messages. More... | |
Static Protected Member Functions inherited from ApiBase | |
| static | addTokenProperties (&$props, $tokenFunctions) |
| Add token properties to the array used by getResultProperties, based on a token functions mapping. More... | |
| static | dieDebug ( $method, $message) |
| Internal code errors should be reported with this method. More... | |
This is the main query class.
It behaves similar to ApiMain: based on the parameters given, it will create a list of titles to work on (an ApiPageSet object), instantiate and execute various property/list/meta modules, and assemble all resulting data into a single ApiResult object.
In generator mode, a generator will be executed first to populate a second ApiPageSet object, and that object will be used for all subsequent modules.
Definition at line 38 of file ApiQuery.php.
| ApiQuery::__construct | ( | $main, | |
| $action | |||
| ) |
| $main | ApiMain |
| $action | string |
Definition at line 127 of file ApiQuery.php.
References global.
|
private |
| $pageSet | ApiPageSet Pages to be exported |
| $result | ApiResult Result to output to |
Definition at line 587 of file ApiQuery.php.
References $title, $titles, $user, array(), as, ApiBase\getDB(), ContextSource\getUser(), and ApiResult\setContent().
Referenced by outputGeneralPageInfo().
| ApiQuery::execute | ( | ) |
Query execution happens in the following steps: #1 Create a PageSet object with any pages requested by the user #2 If using a generator, execute it to get a new ApiPageSet object #3 Instantiate all requested modules.
This way the PageSet object will know what shared data is required, and minimize DB calls. #4 Output all normalization and redirect resolution information #5 Execute all requested modules
Reimplemented from ApiBase.
Definition at line 244 of file ApiQuery.php.
References $mGeneratorContinue, $params, array(), as, ApiBase\extractRequestParams(), ApiBase\getMain(), ApiBase\getResult(), initContinue(), initModules(), instantiateModules(), mergeCacheMode(), outputGeneralPageInfo(), and wfRunHooks().
| ApiQuery::getAllowedParams | ( | $flags = 0 | ) |
Definition at line 629 of file ApiQuery.php.
References $flags, array(), getPageSet(), ApiBase\PARAM_ISMULTI, and ApiBase\PARAM_TYPE.
| ApiQuery::getCustomPrinter | ( | ) |
Reimplemented from ApiBase.
Definition at line 222 of file ApiQuery.php.
References ApiBase\getMain(), and ApiBase\getParameter().
| ApiQuery::getDescription | ( | ) |
Returns the description string for this module.
Reimplemented from ApiBase.
Definition at line 733 of file ApiQuery.php.
References array().
| ApiQuery::getExamples | ( | ) |
Returns usage examples for this module.
Return false if no examples are available.
Reimplemented from ApiBase.
Definition at line 750 of file ApiQuery.php.
References array().
| ApiQuery::getGenerators | ( | ) |
Get the generators array mapping module names to class names.
Definition at line 197 of file ApiQuery.php.
References $name, array(), as, and wfDeprecated().
| ApiQuery::getHelpUrls | ( | ) |
Reimplemented from ApiBase.
Definition at line 758 of file ApiQuery.php.
References array().
| ApiQuery::getModuleManager | ( | ) |
Overrides to return this instance's module manager.
Reimplemented from ApiBase.
Definition at line 149 of file ApiQuery.php.
References $mModuleMgr.
Referenced by getModules(), and getModuleType().
| ApiQuery::getModules | ( | ) |
Get the array mapping module names to class names.
Definition at line 186 of file ApiQuery.php.
References getModuleManager(), and wfDeprecated().
| ApiQuery::getModuleType | ( | $moduleName | ) |
Get whether the specified module is a prop, list or a meta query module.
| string | $moduleName | Name of the module to find type for |
Definition at line 215 of file ApiQuery.php.
References getModuleManager().
| ApiQuery::getNamedDB | ( | $name, | |
| $db, | |||
| $groups | |||
| ) |
Get the query database connection with the given name.
If no such connection has been requested before, it will be created. Subsequent calls with the same $name will return the same connection as the first, regardless of the values of $db and $groups
| string | $name | Name to assign to the database connection |
| int | $db | One of the DB_* constants |
| array | $groups | Query groups |
Definition at line 163 of file ApiQuery.php.
References $name, ApiBase\profileDBIn(), ApiBase\profileDBOut(), and wfGetDB().
| ApiQuery::getPageSet | ( | ) |
Gets the set of pages the user has requested (or generated)
Definition at line 177 of file ApiQuery.php.
References $mPageSet.
Referenced by getAllowedParams(), getParamDescription(), getPossibleErrors(), and outputGeneralPageInfo().
| ApiQuery::getParamDescription | ( | ) |
Returns an array of parameter descriptions.
Don't call this function directly: use getFinalParamDescription() to allow hooks to modify descriptions as needed.
Reimplemented from ApiBase.
Definition at line 712 of file ApiQuery.php.
References array(), and getPageSet().
| ApiQuery::getPossibleErrors | ( | ) |
Returns a list of all possible errors returned by the module.
Don't call this function directly: use getFinalPossibleErrors() to allow hooks to modify parameters as needed.
Reimplemented from ApiBase.
Definition at line 743 of file ApiQuery.php.
References ApiBase\getFinalPossibleErrors(), and getPageSet().
|
private |
Parse 'continue' parameter into the list of complete modules and a list of generator parameters.
| array | null | $pagesetParams | returns list of generator params or null if pageset is done |
| array | null | $completeModules | returns list of finished modules (as keys), or null if legacy |
Definition at line 353 of file ApiQuery.php.
References array(), and ApiBase\dieContinueUsageIf().
Referenced by execute().
|
private |
Validate sub-modules, filter out completed ones, and do requestExtraData()
| array | $allModules | An dict of name=>instance of all modules requested by the client |
| array | null | $completeModules | list of finished modules, or null if legacy continue |
| bool | $usePageset | True if pageset will be executed |
Definition at line 389 of file ApiQuery.php.
References array(), as, ApiBase\dieContinueUsageIf(), ApiBase\dieUsageMsgOrDebug(), and ContextSource\getRequest().
Referenced by execute().
|
private |
Create instances of all modules requested by the client.
| array | $modules | to append instantiated modules to |
| string | $param | Parameter name to read modules from |
Definition at line 448 of file ApiQuery.php.
References as, and ApiBase\dieDebug().
Referenced by execute().
| ApiQuery::makeHelpMsg | ( | ) |
Override the parent to generate help messages for all available query modules.
Reimplemented from ApiBase.
Definition at line 660 of file ApiQuery.php.
References makeHelpMsgHelper().
|
private |
For all modules of a given group, generate help messages and join them together.
| string | $group | Module group |
Definition at line 683 of file ApiQuery.php.
References $name, array(), as, and ApiMain\makeHelpMsgHeader().
Referenced by makeHelpMsg().
|
protected |
Update a cache mode string, applying the cache mode of a new module to it.
The cache mode may increase in the level of privacy, but public modules added to private data do not decrease the level of privacy.
| $cacheMode | string |
| $modCacheMode | string |
Definition at line 429 of file ApiQuery.php.
Referenced by execute().
|
private |
Appends an element for each page in the current pageSet with the most general information (id, title), plus any title normalizations and missing or invalid title/pageids/revids.
Definition at line 468 of file ApiQuery.php.
References $title, ApiQueryBase\addTitleInfo(), array(), as, doExport(), SpecialPageFactory\exists(), getPageSet(), ApiBase\getResult(), NS_MEDIA, and wfFindFile().
Referenced by execute().
| ApiQuery::setGeneratorContinue | ( | $module, | |
| $paramName, | |||
| $paramValue | |||
| ) |
This method is called by the generator base when generator in the smart-continue mode tries to set 'query-continue' value.
ApiQuery stores those values separately until the post-processing when it is known if the generation should continue or repeat.
| ApiQueryGeneratorBase | $module | generator module |
| string | $paramName | |
| mixed | $paramValue |
Definition at line 570 of file ApiQuery.php.
References array().
| ApiQuery::shouldCheckMaxlag | ( | ) |
Indicates if this module needs maxlag to be checked.
Reimplemented from ApiBase.
Definition at line 708 of file ApiQuery.php.
|
private |
Definition at line 120 of file ApiQuery.php.
Referenced by execute().
|
private |
Definition at line 119 of file ApiQuery.php.
Referenced by getModuleManager().
|
private |
Definition at line 118 of file ApiQuery.php.
|
private |
Definition at line 115 of file ApiQuery.php.
Referenced by getPageSet().
|
private |
Definition at line 117 of file ApiQuery.php.
|
private |
Definition at line 121 of file ApiQuery.php.
|
staticprivate |
Definition at line 67 of file ApiQuery.php.
|
staticprivate |
Definition at line 106 of file ApiQuery.php.
|
staticprivate |
Definition at line 44 of file ApiQuery.php.