用途:面向 Drupal 模块开发,整理菜单、任务(选项卡)、动作链接、上下文链接的声明方式,以及以编程方式加载和构建菜单树。
主要能力与用法: 菜单链接通过 *.links.menu.yml 声明,字段包括 title、description、route_name、parent、weight,例如 my_module.admin 挂在 system.admin_config 下。 任务链接(选项卡)通过 *.links.task.yml 声明,使用 base_route 归属到父路由并可设 weight。 动作链接通过 *.links.action.yml 声明,用 appears_on 指定出现的页面路由。 编程操作菜单树使用 MenuTreeParameters 设置最大深度与仅启用链接,调用 \Drupal::menuTree()->load() 加载,再用 manipulators(如 menu.default_tree_manipulators:checkAccess、generateIndexAndSort)transform,最后 build 生成可渲染数组。 修改菜单链接可用钩子 menu_links_discovered_alter,对 $links 数组中指定键的 title 等属性改写。 动态菜单链接可继承 MenuLinkDefault 插件,在 src/Plugin/Menu/ 下实现,例如重写 getTitle()。
适用场景:Drupal 模块后台管理页面、选项卡导航、列表页操作按钮、按权限或运行时数据生成菜单项。
限制:资料未说明支持的 Drupal 具体版本、兼容性与依赖要求,未提供定价、平台或效果数据;上述代码与配置需按实际项目补全路由和类命名空间,缺失信息暂未提供。