ZF2如何动态选择模块/控制器

时间:2014-04-29 12:07:39

标签: module zend-framework2 bootstrapping

我正在构建CMS,其中每个页面都是具有NodeID的节点。我想根据节点类型动态决定使用哪个ZF2模块。

我认为最好的选择是核心的模块(应用程序)onBootstrap()方法,因为我没有找到类似" postRoute" ZF1中的事件。

问题是,如何才能正确地将处理传递给正确的模块/控制器?我的意思是,正确的地方是什么。这真的是在应用程序中的onBootstrap()。模块,还是有更合适的东西?

1 个答案:

答案 0 :(得分:0)

我处理这个问题的方法是使用路由器将流程引导到适当的控制器。您尚未指定计划访问页面的方式,但假设通过创建指向特定于页面的URL的超链接来完成页面访问,您可以配置模块,以便链接转到正确的URL,而url又指向正确的URL控制器。

  1. 在页面中添加(或确保您已经拥有)一列 标识节点类型的表。 (你还需要设置 某种形式的验证,以确保此列中的值 限于您将拥有路由器的值。)
  2. 从表中获取NodeID时抓取节点类型数据。
  3. 设置超链接以将节点类型和NodeID发送到 一个网址。示例可能是www.mysite / about / node3,www.mysite / info / node7和www.mysite / contact / node9。
  4. 设置路由器,使网址通向正确的控制器。