aboutsummaryrefslogtreecommitdiffstats
path: root/includes/HookContainer/GlobalHookRegistry.php
blob: 961d7236ccf2f35ac0b2f90818b12bcb4a95b9bf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php

namespace MediaWiki\HookContainer;

use ExtensionRegistry;

/**
 * A HookRegistry which sources its data from dynamically changing sources:
 * $wgHooks and an ExtensionRegistry.
 */
class GlobalHookRegistry implements HookRegistry {
	/** @var ExtensionRegistry */
	private $extensionRegistry;
	/** @var DeprecatedHooks */
	private $deprecatedHooks;

	public function __construct(
		ExtensionRegistry $extensionRegistry,
		DeprecatedHooks $deprecatedHooks
	) {
		$this->extensionRegistry = $extensionRegistry;
		$this->deprecatedHooks = $deprecatedHooks;
	}

	public function getGlobalHooks() {
		global $wgHooks;
		return $wgHooks;
	}

	public function getExtensionHooks() {
		return $this->extensionRegistry->getAttribute( 'Hooks' ) ?? [];
	}

	public function getDeprecatedHooks() {
		return $this->deprecatedHooks;
	}
}