【问题标题】:How can I implement my user session class in Zend Framework如何在 Zend Framework 中实现我的用户会话类
【发布时间】:2012-12-27 20:43:09
【问题描述】:

您好,我有一个网站,我有 3 个类 AnonymousUser(用于未登录的用户)、Users(用于注册的普通用户)和UsersInSession(有会话的用户)所有这些类都继承来自 People 类。

我从 sql 查询中获取用户数据,并将其序列化谁正在记录并将其保存到 _SESSION["objectSession"],当用户记录每个 PHP 文件时,我将 _SESSION["objectSession"] 反序列化为 $objectSession 对象.. 当我想在对象中获取我的好友列表(在 MySQL 的资源中)时:

$myFriends=$objectSession->getFriends();

那我可以这样打印我朋友的数据:

 <table> <tr> <td>Name</td><td>Lastnames</td> </tr> <?php
 while($objectFriend=$myFriends->fetchObject("Users")){ ?> <tr> <td><?
 echo $objectFriend->name; ?></td> <td><? echo
 $objectFriend->lastnames; ?></td> <?php } ?></tr></table>

我可以用这些类在 Zend Framework 中实现吗?

不知道这些类可以是Model还是Controller..

【问题讨论】:

  • 您使用的是哪个版本的 zend-framework ?
  • 感谢我使用 Zend 2.0
  • 那么很抱歉我帮不上什么忙,因为我还没有升级到 zend-framework2。

标签: php zend-framework session


【解决方案1】:

对于这个问题,您的 ZF 版本无关紧要,因为它更多的是结构问题。

对于初学者,您目前有 3 个类在很大程度上做同样的事情。您可能可以将这 3 个类压缩为一个具有 3 个(或更多)身份验证和访问级别的用户类。

使用 ZF2 时,您可以使用您的身份验证(登录)系统:Zend\Authentication 然后,当您的应用程序决定每个用户获得的访问级别时,您可以使用其中一个访问控制组件来控制用户可以访问哪些资源。
Zend/Permissions/Acl,传统的基于对象的 ACL。
Zend/Permissions/Rbac,基于角色的 ACL。

如果你真的不想/不需要自己的解决方案,你可以在ZF2 modules找到一些非常好的访问控制和身份验证解决方案

[编辑]

我可以用这些类在 Zend Framework 中实现吗?

是的,尽管您可能需要重命名它们以便于实施。

不知道这些类可以是Model还是Controller..

根据您的描述,您的类很可能在每个类中包含模型、控制器甚至视图元素。所以可能需要进行一些重构。

通常,这些类主要是 'Domain Model' 类型的模型类,它们将与一个或多个控制器进行交互,以通过视图进行处理和呈现。

【讨论】:

    【解决方案2】:

    谢谢,好吧,也许我问的问题不是很好..我对这 3 个类所做的是检查用户是否有“特权”来做这件事,例如:

    -匿名用户(继承自 People 类)不能评论任何个人资料。

    -用户(也继承自 People 类)可以发表评论,并拥有其个人资料和图片。每个用户都有一个隐私表,因此取决于用户是否可以评论他们的朋友或所有用户。这个类有 checkprivacy ($iduser) 方法检查用户是否可以看到 $iduser 的配置文件。这个类也有 checkBlocked($iduserblock) 功能,因为它可以检查用户是否被阻止并且看不到配置文件。

    -People 类(这个类完成工作)检查会话是否是匿名用户,或者用户(已登录)如果已登录,我们检查是否被阻止,我们将检查他是否可以发表评论。如果是匿名者不需要检查他是否被阻止.. 这个类有方法 loadProfile($id) 来加载配置文件和更多问题

    【讨论】:

      猜你喜欢
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 2011-02-28
      • 1970-01-01
      • 2012-07-18
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多