在模型或控制器中使用Zend_Auth的位置?

时间:2010-12-15 13:49:26

标签: php zend-framework model controller zend-auth

我正在Zend中首次登录用户,但我对Zend_Auth感到困惑。 我读到的所有文章都直接在控制器中使用它。但对我来说,在我的用户模型中使用它更有意义,这样每个控制器都可以调用这些函数。

你们有什么想法?

关于Zend Framework的模型的文档非常少。

3 个答案:

答案 0 :(得分:2)

您可以将身份验证逻辑放入用户类中。

查看Matthew Weier O'Phinney's blog post about Model Infrastructure,了解如何将authenticate所需的Zend_Auth_Adapter_Interface方法添加到自定义用户类。

答案 1 :(得分:0)

Zend_Auth :: getInstance()将返回实例,因此您可以在任何需要它的控制器中使用它,使shure在成功登录时保存数据,这样您就不需要模型进行身份验证或测试用户是否经过身份验证。 (在你的模型中使用auth会在你不需要它们的时候在内存中加载不必要的模型clases ...,如果用户通过身份验证的测试应该放在bootstrap中)

编辑以回复您的问题

使一个控制器具有验证和loggout的操作,这样你就可以保持独立,你可以通过页面上的一个简单链接调用loggout函数,并在登录到$ _SERVER后重定向回来['HTTP_REFERER “];所以当用户点击loggout时,用户最终会回到他正在查看的页面。

答案 2 :(得分:0)

在普通的网络应用程序“模型 - 视图 - 控制器”范例(可能argued即将结束)中,视图/控制器部分应包含与用户个人体验相关的代码。该模型应仅用于与您的数据进行交互;它应该包含转换数据,存储和检索数据的方法,以及包含它的成员。与业务逻辑,身份验证和其他特定于会话的信息相关的所有内容都应该远离“模型”。