我目前正在使用 Zend Framework 和 Doctrine 2 开发一个项目,我对这两个工具都非常满意,但我想知道如何使用这个特殊的 User 对象,它共享数据库数据、会话数据(授权、参数、acl 等)
我经常看到这种实现:
if (User::isConnected())
对我来说,问题是我的 User 类是 Doctrine 使用的实体,这不是问题,但如果我的 User 具有一些复杂的角色和/或权限,它可能会添加一些业务逻辑。
顺便说一句,我不知道为什么(只是一种感觉,也许是错误的)但它看起来不是一个好主意,我很确定它有设计限制。
目前我的想法是使用 UserService,我已经尝试将这样的层用于我的其他实体,它看起来非常有趣。
类似的东西怎么样:
$service = new UserService($entityManager);
if ($service->isUserConnected($user))
它可以让我使用其他服务,例如 IdentificationService,它可以将“用户”(或任何其他可能被授权的“资源”)存储到会话中并检查授权。
这同样适用于 AuthorizationService ,方法如下:
$service->isAuthorized($user, $resource, $action)
您对这种实施方式有任何反馈吗?和/或任何例子?
你觉得呢?你有没有什么想法?
谢谢你。