summaryrefslogtreecommitdiff
path: root/includes/registration/ExtensionRegistry.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/registration/ExtensionRegistry.php')
-rw-r--r--includes/registration/ExtensionRegistry.php20
1 files changed, 19 insertions, 1 deletions
diff --git a/includes/registration/ExtensionRegistry.php b/includes/registration/ExtensionRegistry.php
index 2558f7e2..4e690aa8 100644
--- a/includes/registration/ExtensionRegistry.php
+++ b/includes/registration/ExtensionRegistry.php
@@ -109,6 +109,24 @@ class ExtensionRegistry {
}
/**
+ * Get the current load queue. Not intended to be used
+ * outside of the installer.
+ *
+ * @return array
+ */
+ public function getQueue() {
+ return $this->queued;
+ }
+
+ /**
+ * Clear the current load queue. Not intended to be used
+ * outside of the installer.
+ */
+ public function clearQueue() {
+ $this->queued = array();
+ }
+
+ /**
* Process a queue of extensions and return their extracted data
*
* @param array $queue keys are filenames, values are ignored
@@ -143,7 +161,7 @@ class ExtensionRegistry {
protected function exportExtractedData( array $info ) {
foreach ( $info['globals'] as $key => $val ) {
- if ( !isset( $GLOBALS[$key] ) || !$GLOBALS[$key] ) {
+ if ( !isset( $GLOBALS[$key] ) || ( is_array( $GLOBALS[$key] ) && !$GLOBALS[$key] ) ) {
$GLOBALS[$key] = $val;
} elseif ( $key === 'wgHooks' || $key === 'wgExtensionCredits' ) {
// Special case $wgHooks and $wgExtensionCredits, which require a recursive merge.