Skip to content

Release v2.2.4

Choose a tag to compare

@github-actions github-actions released this 10 Oct 10:35
· 94 commits to main since this release

Release v2.2.4

Changelog

Performance

  • MenuUrlResolver no longer calls RouterInterface::getRouteCollection() to find the path variables of each menu route. It reads them from the generator's compiled table (url_generating_routes.php), so the routing resources (attribute scanning included) are not reloaded on every request: ~200–500 ms per page with the sidebar under PHP-FPM on an app with ~3k routes. Routers without a compiled cache keep the previous fallback.
  • dashboard_menu_config() reuses the menu rows already loaded by dashboard_menu_tree() (new MenuTreeLoader::loadMenu()), instead of an extra ORM query and entity hydration per request.
  • Raw menu rows are memoized on the main request attributes (worker-safe), so the tree and its config share one cache / DB read per request.

Fixed

  • Empty branches are pruned again, as documented in USAGE: sections and links whose database children are all hidden by the permission checker are removed. had_children was computed on a by-value copy (never set) and after permission filtering.
  • The raw menu query and hydration now include class_section_label, class_section and class_divider (tree cache key bumped to nowo_dashboard_menu.tree.v2.).

Full Changelog: v2.2.3...v2.2.4