代码之家  ›  专栏  ›  技术社区  ›  Mahdi.Montgomery

在视图呈现之前执行函数

  •  1
  • Mahdi.Montgomery  · 技术社区  · 14 年前

    我是Zend Framework MVC的新手。我非常喜欢使用MVC环境,但有时会发现自己在结构上对此感到困惑。

    我有一个简单的任务,我想在我们的网站上标记某些用户跟踪他们的行动。为此,我在数据库中设置了一个简单的表,并开始在引导程序中编写我的\u initTracking()函数。然后我意识到我是从错误的方向来处理这个问题的——我希望这是最后触发的函数之一,以避免将跟踪条目与头重定向混在一起,并确保所有自动加载的类都存在。我该怎么做?有“onBeforeRender”类型的函数吗?如果有,我就找不到。

    谢谢

    3 回复  |  直到 14 年前
        1
  •  1
  •   Vika    14 年前

    我建议使用ZF插件。你可以在插件中跟踪用户的行为 postDispatch() dispatchLoopShutdown() 方法,具体取决于跟踪需要的粒度。

    一些关于ZF插件的阅读- http://framework.zend.com/manual/en/zend.controller.plugins.html

    http://www.eschrade.com/page/zend-framework-request-lifecycle-4b9a4288 .

        2
  •  0
  •   Mahdi.Montgomery    14 年前

    最后把这个放到了布局脚本里。也许有更好的方法可以做到这一点,但在我的情况下(拥有我希望代码在2个布局下运行的所有视图),这是最简单的,并且实现了我的目标。

        3
  •  0
  •   Alex Osborn    14 年前

    我认为最好的地方是在控制器中的postDispatch()钩子中。

    http://framework.zend.com/manual/en/zend.controller.action.html ,特别是关于调度前和调度后挂钩的部分。