These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | |||
3 | use SMW\Notifications\HookRegistry; |
||
4 | |||
5 | /** |
||
6 | * @see https://github.com/SemanticMediaWiki/SemanticNotifications/ |
||
7 | * |
||
8 | * @defgroup SemanticNotifications Semantic Notifications |
||
9 | */ |
||
10 | if ( !defined( 'MEDIAWIKI' ) ) { |
||
11 | die( 'This file is part of the Semantic Notifications extension, it is not a valid entry point.' ); |
||
12 | } |
||
13 | |||
14 | if ( version_compare( $GLOBALS[ 'wgVersion' ], '1.26', 'lt' ) ) { |
||
15 | die( '<b>Error:</b> This version of <a href="https://github.com/SemanticMediaWiki/SemanticNotifications/">Semantic Notifications</a> is only compatible with MediaWiki 1.26 or above. You need to upgrade MediaWiki first.' ); |
||
16 | } |
||
17 | |||
18 | if ( defined( 'SMW_NOTIFICATIONS_VERSION' ) ) { |
||
19 | // Do not initialize more than once. |
||
20 | return 1; |
||
21 | } |
||
22 | |||
23 | SemanticNotifications::initExtension(); |
||
24 | |||
25 | $GLOBALS['wgExtensionFunctions'][] = function() { |
||
26 | SemanticNotifications::onExtensionFunction(); |
||
27 | }; |
||
28 | |||
29 | /** |
||
30 | * @codeCoverageIgnore |
||
31 | */ |
||
32 | class SemanticNotifications { |
||
33 | |||
34 | /** |
||
35 | * @since 1.0 |
||
36 | */ |
||
37 | public static function initExtension() { |
||
38 | |||
39 | define( 'SMW_NOTIFICATIONS_VERSION', '1.0.0-alpha' ); |
||
40 | |||
41 | // Register extension info |
||
42 | $GLOBALS['wgExtensionCredits']['semantic'][] = array( |
||
43 | 'path' => __FILE__, |
||
44 | 'name' => 'Semantic Notifications', |
||
45 | 'author' => array( 'James Hong Kong' ), |
||
46 | 'url' => 'https://github.com/SemanticMediaWiki/SemanticNotifications/', |
||
47 | 'descriptionmsg' => 'smw-notifications-desc', |
||
48 | 'version' => SMW_NOTIFICATIONS_VERSION, |
||
49 | 'license-name' => 'GPL-2.0+', |
||
50 | ); |
||
51 | |||
52 | // Register message files |
||
53 | $GLOBALS['wgMessagesDirs']['SemanticNotifications'] = __DIR__ . '/i18n'; |
||
54 | } |
||
55 | |||
56 | /** |
||
57 | * @since 1.0 |
||
58 | */ |
||
59 | public static function onExtensionFunction() { |
||
60 | |||
61 | // There is no good way to detect whether Echo is available or not without |
||
62 | // making a class_exists, what should I say ... |
||
63 | if ( !isset( $GLOBALS['wgMessagesDirs']['Echo'] ) ) { |
||
64 | die( '<b>Error:</b><a href="https://github.com/SemanticMediaWiki/SemanticNotifications/">Semantic Notifications</a> requires the <a href="https://www.mediawiki.org/wiki/Extension:Echo">Echo(Notifications)</a> extension. Please install and activate this extension first.' ); |
||
0 ignored issues
–
show
|
|||
65 | } |
||
66 | |||
67 | $hookRegistry = new HookRegistry(); |
||
68 | $hookRegistry->register(); |
||
69 | } |
||
70 | |||
71 | /** |
||
72 | * @since 1.0 |
||
73 | * |
||
74 | * @return string|null |
||
75 | */ |
||
76 | public static function getVersion() { |
||
77 | return SMW_NOTIFICATIONS_VERSION; |
||
78 | } |
||
79 | |||
80 | } |
||
81 |
An exit expression should only be used in rare cases. For example, if you write a short command line script.
In most cases however, using an
exit
expression makes the code untestable and often causes incompatibilities with other libraries. Thus, unless you are absolutely sure it is required here, we recommend to refactor your code to avoid its usage.