0

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

我从 sql 查询中获取用户数据,并将其序列化谁正在记录并将其保存到_SESSION["objectSession"],当用户记录每个 PHP 文件时,我取消序列化_SESSION["objectSession"]to$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 中实现吗?

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

4

2 回答 2

1

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

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

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

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

[编辑]

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

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

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

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

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

于 2012-12-28T14:13:59.473 回答
0

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

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

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

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

于 2012-12-28T17:36:45.660 回答