wiki.techinc.nl/includes/HookContainer/HookRegistry.php
Tim Starling b3d762e148 Add HookRegistry
Add a HookRegistry interface and two concrete implementations,
representing HookContainer's view of its environment. This simplifies
creation of a HookContainer for testing.

Add MediaWikiTestCaseTrait::createHookContainer() which can be used
in most of the places that were previously creating mock hook
containers. It can also replace setTemporaryHook() in some cases.

Change-Id: I9ce15591dc40b3d717c203fa973141aa45a2500c
2020-05-13 11:51:02 +10:00

40 lines
1.4 KiB
PHP

<?php
namespace MediaWiki\HookContainer;
interface HookRegistry {
/**
* Get the current contents of the $wgHooks variable or a mocked substitute
* @return array
*/
public function getGlobalHooks();
/**
* Get the current contents of the Hooks attribute in the ExtensionRegistry.
* The contents is extended and normalized from the value of the
* corresponding attribute in extension.json. It does not contain "legacy"
* handlers, those are extracted into $wgHooks.
*
* It is a three dimensional array:
*
* - The outer level is an array of hooks keyed by hook name.
* - The second level is an array of handlers, with integer indexes.
* - The third level is an associative array with the following members:
* - handler: An ObjectFactory spec, except that it also has an
* element "name" which is a unique string identifying the handler,
* for the purposes of sharing handler instances.
* - deprecated: A boolean value indicating whether the extension
* is acknowledging deprecation of the hook, to activate call
* filtering.
* - extensionPath: The path to the extension.json file in which the
* handler was defined. This is only used for deprecation messages.
*
* @return array
*/
public function getExtensionHooks();
/**
* @return DeprecatedHooks
*/
public function getDeprecatedHooks();
}