Open main menu

Manual:Hooks/ApiQueryBaseBeforeQuery

< Manual:Hooks
ApiQueryBaseBeforeQuery
Available from version 1.29.0 (Gerrit change 313830)
Called for (some) API query modules before a database query is made.
Define function:
public static function onApiQueryBaseBeforeQuery( $this, &$tables, &$fields, &$where, &$options, &$join_conds, &$hookData ) { ... }
Attach hook:

In extension.json:

{
	"Hooks": {
		"ApiQueryBaseBeforeQuery": "MyExtensionHooks::onApiQueryBaseBeforeQuery"
	}
}

For MediaWiki ≤1.25:

$wgHooks['ApiQueryBaseBeforeQuery'][] = 'MyExtensionHooks::onApiQueryBaseBeforeQuery';
Called from:File(s): ApiQueryBase.php
Function(s): select

For more information about attaching hooks, see Manual:Hooks.
For examples of extensions using this hook, see Category:ApiQueryBaseBeforeQuery extensions.

Called for (some) API query modules before a database query is made. WARNING: It would be very easy to misuse this hook and break the module! Any joins added *must* join on a unique key of the target table unless you really know what you're doing. An API query module wanting to use this hook should see the ApiQueryBase::select() and ApiQueryBase::processRow() documentation.

DetailsEdit

  • $module: ApiQueryBase module in question
  • &$tables: array of tables to be queried
  • &$fields: array of columns to select
  • &$conds: array of WHERE conditionals for query
  • &$query_options: array of options for the database request
  • &$join_conds: join conditions for the tables
  • &$hookData: array that will be passed to the ApiQueryBaseAfterQuery' and ApiQueryBaseProcessRow hooks, intended for inter-hook communication.