我有一个需要动态创建的菜单(一些博客页面是从数据库中添加的)。带有 Zend\Navigation\Navigation 的 ZF2 动态菜单解决了如何为单个控制器/动作执行此操作。
但是,在初始化模块的那一刻,应该如何对所有请求执行此操作?
我至少需要 routeMatch 对象(以获取语言参数),并且我已经看到了以下内容:
public function onBootstrap(EventInterface $e)
{
$app = $e->getApplication();
$em = $app->getEventManager();
$em->attach(MvcEvent::EVENT_ROUTE, function($e) {
$routeMatch = $e->getRouteMatch();
});
}
但在文档中它说:
“onBootstrap() 方法会在每个页面请求上为实现此功能的每个模块调用,并且只应用于执行轻量级任务,例如注册事件侦听器。”
在 Zend Framework 2 中初始化动态导航(或其他更复杂的逻辑)的最佳位置和方法是什么?