Jump to navigation Jump to search
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.


  • $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.