Commit graph

9 commits

Author SHA1 Message Date
Kunal Mehta
6e9b4f0e9c Convert all array() syntax to []
Per wikitech-l consensus:
 https://lists.wikimedia.org/pipermail/wikitech-l/2016-February/084821.html

Notes:
* Disabled CallTimePassByReference due to false positives (T127163)

Change-Id: I2c8ce713ce6600a0bb7bf67537c87044c7a45c4b
2016-02-17 01:33:00 -08:00
victorbarbu
7489cdfc05 registration: Allow loading composer's autoloader if it exists
Extensions that have composer dependencies can set
 "load_composer_autoloader": true
to load "$dir/vendor/autoload.php" if it exists.

While it is recommended to use composer-merge-plugin to manage
composer dependencies for extensions, using a local autoloader
can be easier for development and is used by ExtensionDistributor.

Bug: T119766
Change-Id: Ib031bef17c8a7d708a5c7878e74967d19217bbc8
2015-12-29 23:20:17 +00:00
Kunal Mehta
0a83ef3cf7 registration: Fix merging of array_plus
We want the local configuration ($GLOBALS[$key]) to override the default
values ($val). This matches what `array_merge` does.

Bug: T112868
Change-Id: I9c333a1fa67d3f24e09ffed3072b2897389f6139
2015-09-17 10:29:02 -07:00
Kunal Mehta
1ebb0f5659 registration: Overhaul merging of globals
Instead of hardcoding specific global settings in ExtensionRegistry,
create specific "merge strategies" that are used to merge globals.

Merge strategies are set for core properties in the ExtensionProcessor,
and extensions can set them for their own configuration settings using
the magic "_merge_strategy" key.

The following merge strategies are included:
* array_merge_recursive - call `array_merge_recursive` on the two arrays
* array_plus - use the "+" operator to combine arrays, preserving
               integer keys
* array_plus_2d - A version of array_plus that works on 2d arrays, used
                  for merging arrays like $wgGroupPermissions
* array_merge - call `array_merge` (default)

This changes the merging of various namespaces related settings to use
array_plus so they actually work.

Bug: T107646
Change-Id: I64cb0553864e3b78b0f203333f58bb73b86a6434
2015-08-02 12:04:25 -07:00
Kunal Mehta
ce5a0c5cd2 registration: Don't override boolean false settings
Our optimization of !$GLOBALS[$key] was affecting settings where a true
setting was being disabled in LocalSettings.php. Now explicitly check it
is an array before overriding it.

Bug: T100767
Change-Id: Id5397e526d66559bfabe6065223b1181a8a9d31e
2015-06-03 08:03:20 -07:00
Kunal Mehta
048b148edb registration: Add test case to demonstrate T98347 is invalid
Change-Id: I0f5c1bfa0d83465beffb1cc5ebaa457169569228
2015-05-15 17:57:12 -07:00
umherirrender
14cc0fdf8e Avoid @backupGlobals in ExtensionRegistryTest
Change-Id: Ia2c764b1c1ee8cff64e1ccdb863e5ef7534a286a
2015-02-22 11:02:15 +01:00
Kunal Mehta
ad64077cbc Fix @backupGlobals annotation in ExtensionRegistryTest
Change-Id: I9a38354030eb2638d7988c0f903fb2181ec17cc6
2015-02-21 22:02:58 +00:00
Kunal Mehta
1b22e7783b registration: Improve merging of arrays
Currently we use array_merge_recursive when merging any array, which is really
only needed for merging $wgHooks entries, and causes issues when trying to
merge default settings if the config is already set.

$wgHooks and $wgGroupPermissions are now special cased when merging, and all
other arrays are just +='d.

Bug: T88665
Bug: T89364
Change-Id: I773a9463d4428aa618c17f848c01b24e04610e95
2015-02-16 23:12:32 +00:00