Repository navigation
Release v2.2.4
Release v2.2.4
Changelog
Performance
MenuUrlResolverno longer callsRouterInterface::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 bydashboard_menu_tree()(newMenuTreeLoader::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_childrenwas computed on a by-value copy (never set) and after permission filtering. - The raw menu query and hydration now include
class_section_label,class_sectionandclass_divider(tree cache key bumped tonowo_dashboard_menu.tree.v2.).
Full Changelog: v2.2.3...v2.2.4