如何在Zend Framework中实现我的用户会话类

时间:2012-12-27 20:43:09

标签: php zend-framework session

您好我有一个网站,我有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中使用这些类实现吗?

我不知道这些类是模型还是控制器..

2 个答案:

答案 0 :(得分:1)

对于这个问题,你的ZF版本是无关紧要的,因为它更像是一个结构问题,而不是其他任何东西。

对于初学者来说,你目前有3个课程大致相同。您可以将这3个类压缩为一个具有3(或更多)级别的身份验证和访问权限的用户类。

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

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

<强> [编辑]

  

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

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

  

我不知道这些类是模型还是控制器..

根据您的描述,您的类可能包含模型,控制器甚至可能在每个类中查看元素。因此可能需要进行一些重构。

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

答案 1 :(得分:0)

谢谢,好吧,也许我没有问这个问题非常好......我对这3个课程做的是检查用户是否有“特权”来做,例如:

- 匿名用户(继承自People类)无法对任何个人资料发表评论。

-Users(也来自People类)也可以发表评论,并有自己的个人资料和图片。每个用户都有一个隐私表,所以如果用户可以评论他们的朋友或所有用户。这个类有检查私密性($ iduser)方法,用于检查用户是否可以看到$ iduser的配置文件。这个类也有checkBlocked($ iduserblock)函数,因为它可以检查用户是否被阻止而无法看到配置文件。

-People class(此类完成工作)检查会话是匿名用户,还是用户(已登录)如果已记录,我们检查是否被阻止,我们将检查他是否可以发表评论。如果是匿名者没有必要检查他是否被阻止..这个类有方法loadProfile($ id)来加载个人资料和更多问题