1

我是 Zend Framework MVC 的新手。我喜欢在 MVC 环境中工作的很多方面,但有时我发现自己在结构上对它感到困惑。

我有一个简单的任务,我想标记我们网站上的某些用户以跟踪他们的动作。为此,我在数据库中建立了一个简单的表,并开始将我的 _initTracking() 函数编码到引导程序中。然后我意识到我是从错误的方向接近这个 - 我希望这是最后一个触发的函数之一,以避免用标题重定向弄乱我的跟踪条目,并确保所有自动加载的类都存在。我该怎么做呢?是否有“onBeforeRender”类型的函数?如果有我找不到。

谢谢

4

3 回答 3

1

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

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

还有一篇关于 Zend 框架中请求生命周期的非常简洁的文章 - http://www.eschrade.com/page/zend-framework-request-lifecycle-4b9a4288

于 2010-09-15T14:35:00.047 回答
0

最后把它放在布局脚本中。可能有更好的方法来做到这一点,但就我而言(拥有所有视图,我希望代码在 2 个布局下运行)这是最简单的,并且实现了我的目标。

于 2010-09-15T02:37:37.090 回答
0

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

看看http://framework.zend.com/manual/en/zend.controller.action.html,特别是关于 Pre-and Post-Dispatch Hooks 的部分。

这适合将您的跟踪代码放在一个基本控制器中 - 您的动作控制器将扩展它,将跟踪代码保存在一个位置。

于 2010-09-15T04:57:26.000 回答