Symfony2最佳实践 - 正确组织需要用户的捆绑包

时间:2012-06-12 15:32:23

标签: symfony bundles

我已经和Symfony2合作了几个星期,并且喜欢它。

然而,我对某方面有点困惑。假设我有两个捆绑包,每个捆绑包都有一个“用户”实体,用于存储有关该用户的信息。

但是,我希望能够使用网站管理员选择的任何身份验证进行实际身份验证(即使它不是我的捆绑包中的某个用户实体)。

组织这些实体并将它们全部链接起来的最佳做法是什么,同时保持对实际身份验证的灵活性。

感谢。


更新:这是一个澄清。

想象一下,我有两个捆绑包:论坛和维基。

现在,对于用户来说,这两个系统需要存储许多不同的数据。因此,每个人都有一些地方来存储它们(比如两个不同的表)。但是,它们都不存储身份验证信息,只存储其他信息。

我们的想法是,无论使用哪种身份验证方法,他们都可以获取该令牌,然后确定他们应该在自己的捆绑包中使用哪些用户数据。这样,捆绑包就可以独立于认证方法而独立工作。

1 个答案:

答案 0 :(得分:0)

我认为你想避免拥有多个用户实体。要快速将一些最佳实践集成到您的应用程序中,请查看FOSUserBundle。这将为您提供大约80%的功能,允许用户注册,登录等。在您的应用程序中创建自己的UserBundle,扩展FOSUserBundle。例如,您的用户实体可能如下所示:

use FOS\UserBundle\Entity\User as BaseUser;

/**
 * Extend the FOSUserBundle base User class.
 * @ORM\Entity
 * @ORM\Table(name="user")
 */
class User extends BaseUser {
    ...
}

在项目的所有其他捆绑包中引用此扩展用户实体(YourApp\UserBundle\Entity\User)作为规范用户实体。