mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/MinervaNeue
synced 2024-11-24 22:25:27 +00:00
933dc0e370
Break up Menu/DefaultBuilder into functions that are reusable without inheritance. The functions do not need much state to produce their outputs and a weighty inheritance hierarchy makes the code difficult to reason about. The functions are used in a following patch for the user menu. They're now simple, independent, static functions in BuilderUtil that are easy to reason about and compose. Also, ban inheritance via `final` in a few places nearby. Inheritance has not worked well in MobileFrontend and enabling it should be a special deliberate case, not a default. E.g., in the user menu, the changes could have been to the base class' getPersonalTools() method such that the client passes a parameter for the advanced config or maybe just override it in the subclass. In either case, it makes the whole hierarchy nuanced and harder to reason about for something that should be dead simple. Bug: T214540 Change-Id: I6e9a2b36a1bff387eb3b33ea65b0a6806962810a |
||
---|---|---|
.. | ||
menu | ||
permissions | ||
skins | ||
LanguagesHelper.php | ||
MinervaHooks.php | ||
MinervaUI.php | ||
ResourceLoaderLessVarFileModule.php | ||
ServiceWiring.php | ||
SkinOptions.php |