LocalisationCache: Avoid use of compact()
[lhc/web/wiklou.git] / includes / cache / localisation / LocalisationCache.php
index a0ce95e..e7b9554 100644 (file)
@@ -109,7 +109,8 @@ class LocalisationCache {
        static public $allKeys = [
                'fallback', 'namespaceNames', 'bookstoreList',
                'magicWords', 'messages', 'rtl', 'capitalizeAllNouns', 'digitTransformTable',
-               'separatorTransformTable', 'fallback8bitEncoding', 'linkPrefixExtension',
+               'separatorTransformTable', 'minimumGroupingDigits',
+               'fallback8bitEncoding', 'linkPrefixExtension',
                'linkTrail', 'linkPrefixCharset', 'namespaceAliases',
                'dateFormats', 'datePreferences', 'datePreferenceMigrationMap',
                'defaultDateFormat', 'extraUserToggles', 'specialPageAliases',
@@ -198,22 +199,22 @@ class LocalisationCache {
                        switch ( $conf['store'] ) {
                                case 'files':
                                case 'file':
-                                       $storeClass = 'LCStoreCDB';
+                                       $storeClass = LCStoreCDB::class;
                                        break;
                                case 'db':
-                                       $storeClass = 'LCStoreDB';
+                                       $storeClass = LCStoreDB::class;
                                        break;
                                case 'array':
-                                       $storeClass = 'LCStoreStaticArray';
+                                       $storeClass = LCStoreStaticArray::class;
                                        break;
                                case 'detect':
                                        if ( !empty( $conf['storeDirectory'] ) ) {
-                                               $storeClass = 'LCStoreCDB';
+                                               $storeClass = LCStoreCDB::class;
                                        } elseif ( $wgCacheDirectory ) {
                                                $storeConf['directory'] = $wgCacheDirectory;
-                                               $storeClass = 'LCStoreCDB';
+                                               $storeClass = LCStoreCDB::class;
                                        } else {
-                                               $storeClass = 'LCStoreDB';
+                                               $storeClass = LCStoreDB::class;
                                        }
                                        break;
                                default:
@@ -516,20 +517,30 @@ class LocalisationCache {
         */
        protected function readPHPFile( $_fileName, $_fileType ) {
                // Disable APC caching
-               MediaWiki\suppressWarnings();
+               Wikimedia\suppressWarnings();
                $_apcEnabled = ini_set( 'apc.cache_by_default', '0' );
-               MediaWiki\restoreWarnings();
+               Wikimedia\restoreWarnings();
 
                include $_fileName;
 
-               MediaWiki\suppressWarnings();
+               Wikimedia\suppressWarnings();
                ini_set( 'apc.cache_by_default', $_apcEnabled );
-               MediaWiki\restoreWarnings();
+               Wikimedia\restoreWarnings();
 
+               $data = [];
                if ( $_fileType == 'core' || $_fileType == 'extension' ) {
-                       $data = compact( self::$allKeys );
+                       foreach ( self::$allKeys as $key ) {
+                               // Not all keys are set in language files, so
+                               // check they exist first
+                               if ( isset( $$key ) ) {
+                                       $data[$key] = $$key;
+                               }
+                       }
                } elseif ( $_fileType == 'aliases' ) {
-                       $data = compact( 'aliases' );
+                       if ( isset( $aliases ) ) {
+                               /** @suppress PhanUndeclaredVariable */
+                               $data['aliases'] = $aliases;
+                       }
                } else {
                        throw new MWException( __METHOD__ . ": Invalid file type: $_fileType" );
                }