LocalisationCache: Avoid use of compact()
In PHP 7.3, compact() now raises notices if the variable is undefined, which is something that we expect. So we can check whether the key exists instead of bothering with compat() and suppressing warnings. Bug: T206979 Change-Id: I612049db4debd850a2e6d10bc631d31aa17be898
This commit is contained in:
parent
6cb3fa392f
commit
d0463178df
1 changed files with 12 additions and 7 deletions
|
|
@ -525,15 +525,20 @@ class LocalisationCache {
|
|||
ini_set( 'apc.cache_by_default', $_apcEnabled );
|
||||
Wikimedia\restoreWarnings();
|
||||
|
||||
$data = [];
|
||||
if ( $_fileType == 'core' || $_fileType == 'extension' ) {
|
||||
|
||||
// Lnguage files aren't required to contain all the possible variables, so suppress warnings
|
||||
// when variables don't exist in tests
|
||||
Wikimedia\suppressWarnings();
|
||||
$data = compact( self::$allKeys );
|
||||
Wikimedia\restoreWarnings();
|
||||
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" );
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue