registration: Actually set the merge strategy for $wgExtensionCredits
authorKunal Mehta <legoktm@gmail.com>
Sun, 2 Aug 2015 21:56:44 +0000 (14:56 -0700)
committerKunal Mehta <legoktm@gmail.com>
Sun, 2 Aug 2015 21:56:44 +0000 (14:56 -0700)
$wgExtensionCredits is special and needs to be set in the
ExtensionRegistry. Also change the cache key so any bad cache entries
will be ignored.

Follows up 1ebb0f5659667f.

Change-Id: Iec08ab8d9ef7fe7cccde979530839ef553779658

includes/registration/ExtensionProcessor.php
includes/registration/ExtensionRegistry.php

index 2a99883..68e5a17 100644 (file)
@@ -57,7 +57,8 @@ class ExtensionProcessor implements Processor {
                'wgGroupPermissions' => 'array_plus_2d',
                'wgRevokePermissions' => 'array_plus_2d',
                'wgHooks' => 'array_merge_recursive',
-               'wgExtensionCredits' => 'array_merge_recursive',
+               // credits are handled in the ExtensionRegistry
+               //'wgExtensionCredits' => 'array_merge_recursive',
                'wgExtraNamespaces' => 'array_plus',
                'wgExtraGenderNamespaces' => 'array_plus',
                'wgNamespacesWithSubpages' => 'array_plus',
index 7e113fc..7414925 100644 (file)
@@ -21,6 +21,11 @@ class ExtensionRegistry {
         */
        const OLDEST_MANIFEST_VERSION = 1;
 
+       /**
+        * Bump whenever the registration cache needs resetting
+        */
+       const CACHE_VERSION = 1;
+
        /**
         * Special key that defines the merge strategy
         *
@@ -109,7 +114,7 @@ class ExtensionRegistry {
                }
 
                // See if this queue is in APC
-               $key = wfMemcKey( 'registration', md5( json_encode( $this->queued ) ) );
+               $key = wfMemcKey( 'registration', md5( json_encode( $this->queued ) ), self::CACHE_VERSION );
                $data = $this->cache->get( $key );
                if ( $data ) {
                        $this->exportExtractedData( $data );
@@ -182,6 +187,7 @@ class ExtensionRegistry {
                foreach ( $data['credits'] as $credit ) {
                        $data['globals']['wgExtensionCredits'][$credit['type']][] = $credit;
                }
+               $data['globals']['wgExtensionCredits'][self::MERGE_STRATEGY] = 'array_merge_recursive';
                $data['autoload'] = $autoloadClasses;
                return $data;
        }