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


How can I implement my user session class in Zend Framework

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

我不知道这些类是否可以是模型或控制器。

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

对于初学者来说,你目前有3个类,它们基本上做同样的事情。您可能可以将这3个类压缩为一个用户类,该用户类具有3个(或更多)身份验证和访问级别。

当使用ZF2时,您可以使用:Zend' authentication来验证(登录)系统然后,当你的应用程序决定每个用户的访问级别时,你可以使用一个访问控制组件来控制用户可以访问哪些资源。
Zend/Permissions/Acl,传统的基于对象的Acl。
Zend/Permissions/Rbac, Role - based ACL.

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

[编辑]

我可以在Zend框架中实现这些类吗?

可以,不过您可能需要重命名它们以方便实现。

我不知道这些类是否可以是模型或控制器..

从你的描述,很可能你的类合并模型,控制器,甚至视图元素在每个类。因此可能需要进行一些重构。

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

谢谢,也许我没有问这个问题很好,我对这三个类所做的是检查用户是否有"特权"来做这件事,例如:

-匿名用户(继承自People类)不能评论任何配置文件。

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

-People类(这个类做这项工作)检查会话是一个匿名用户,还是一个用户(谁被记录),如果被记录,我们检查是否被阻止,我们将检查他是否可以评论。如果是匿名用户,没有必要检查他是否被屏蔽。这个类有loadProfile($id)方法来加载profile和更多问题