SemanticExternalQueryLookup::onExtensionFunction()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 12
rs 9.8666
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
use SEQL\HookRegistry;
4
5
/**
6
 * @see https://github.com/SemanticMediaWiki/SemanticExternalQueryLookup/
7
 *
8
 * @defgroup SEQL Semantic External Query Lookup
9
 */
10
if ( !defined( 'MEDIAWIKI' ) ) {
11
	die( 'This file is part of the Semantic External Query Lookup extension, it is not a valid entry point.' );
12
}
13
14
if ( version_compare( $GLOBALS[ 'wgVersion' ], '1.23', 'lt' ) ) {
15
	die( '<b>Error:</b> This version of <a href="https://github.com/SemanticMediaWiki/SemanticExternalQueryLookup/">Semantic External Query Lookup</a> is only compatible with MediaWiki 1.23 or above. You need to upgrade MediaWiki first.' );
16
}
17
18
if ( defined( 'SEQL_VERSION' ) ) {
19
	// Do not initialize more than once.
20
	return 1;
21
}
22
23
SemanticExternalQueryLookup::initExtension();
24
25
$GLOBALS['wgExtensionFunctions'][] = function() {
26
	SemanticExternalQueryLookup::onExtensionFunction();
27
};
28
29
/**
30
 * @codeCoverageIgnore
31
 */
32
class SemanticExternalQueryLookup {
33
34
	/**
35
	 * @since 1.0
36
	 */
37
	public static function initExtension() {
38
39
		// Load DefaultSettings
40
		require_once __DIR__ . '/DefaultSettings.php';
41
42
		define( 'SEQL_VERSION', '1.0.0-alpha' );
43
44
		// Register extension info
45
		$GLOBALS['wgExtensionCredits']['semantic'][] = array(
46
			'path'           => __FILE__,
47
			'name'           => 'Semantic External Query Lookup',
48
			'author'         => array( 'James Hong Kong' ),
49
			'url'            => 'https://github.com/SemanticMediaWiki/SemanticExternalQueryLookup/',
50
			'descriptionmsg' => 'seql-desc',
51
			'version'        => SEQL_VERSION,
52
			'license-name'   => 'GPL-2.0-or-later',
53
		);
54
55
		// Register message files
56
		$GLOBALS['wgMessagesDirs']['SemanticExternalQueryLookup'] = __DIR__ . '/i18n';
57
	}
58
59
	/**
60
	 * @since 1.0
61
	 */
62
	public static function onExtensionFunction() {
63
64
		$options = array(
65
			'externalRepositoryEndpoints' => $GLOBALS['seqlgExternalRepositoryEndpoints']
66
		);
67
68
		$hookRegistry = new HookRegistry(
69
			$options
70
		);
71
72
		$hookRegistry->register();
73
	}
74
75
	/**
76
	 * @since 1.0
77
	 *
78
	 * @return string|null
79
	 */
80
	public static function getVersion() {
81
		return SEQL_VERSION;
82
	}
83
84
}
85