Background
When building Vector 2022 we reorganized menus to support breaking certain items out of existing menus. We needed to ensure backwards compability. As a result we have a lot of convoluted code that makes it hard to follow how menus are constructed. Removing this will make this code easier to work with.
Notifications are rendered in a legacy menu "personal" as well as a modern menu "user-menu". This makes the code more difficult to reason with.
Skin::getOptions already allows skins to declare the menus for which they need data. This show now be a requirement of skins to allow us to remove these legacy menus.
Going forward we'll make specifying this a requirement. On the long term this will also allow us to reduce the PHP processing time in SkinTemplate by only generating menus that are needed.
TODO
- Support use of new menus in PHP SkinTemplate based skins gerrit
- Prepare Timeless for change gerrit
- Prepare Monobook for change by setting menus option
- Prepare Modern for change by setting menus option ( gerrit )
- Prepare CologneBlue for change by setting menus option ( gerrit )
- Prepare Vector for change ( gerrit )
- Fix T412238: Deprecate support for namespaces key in SkinTemplateNavigation::Universal ( gerrit ).
- Deprecate use of Skins without setting menus option ( gerrit )










