Quantcast
Channel: Issues for Drupal core
Viewing all articles
Browse latest Browse all 295995

Load menu links for multiple routes

$
0
0

Problem/Motivation

This is a follow-up issue to #1578832: <front> menu links are missing active trail classes.

Fixing the other issue introduced a performance penalty for the front page because an extra query had to be run in the menu system to check for link items matching <front>. This could be avoided if we had the ability to load menu links for multiple route names instead of just one at a time. Per @larowlan:

I don't think we can avoid the extra queries because we only have \Drupal\Core\Menu\MenuLinkManager::loadLinksByRoute and \Drupal\Core\Menu\MenuTreeStorageInterface::loadByRoute but I think it would be worth adding loadLinksByRoutes and loadByRoutes methods to both those services to support doing this in a single query.

@catch agreed that this task could be done in a follow-up issue.

Proposed resolution

  • Add \Drupal\Core\Menu\MenuLinkManager::loadLinksByRoutes.
  • Add \Drupal\Core\Menu\MenuTreeStorageInterface::loadByRoutes.
  • Update \Drupal\Core\Menu\MenuActiveTrail::getActiveLink() to use loadLinksByRoutes() for better performance.

Remaining tasks

User interface changes

Introduced terminology

API changes

Two new functions, one in MenuLinkManager and another in MenuTreeStorageInterface.

Data model changes

Release notes snippet


Viewing all articles
Browse latest Browse all 295995

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>