Symfony2用户管理,使用FOSUserBundle或使用Symfony说明书代码作为起点


Symfony2 user management, use FOSUserBundle or roll my own using the Symfony cookbook code as a starting point?

在使用Symfony 1.x几年后,我正在熟悉Symfony 2。

我需要创建一个具有自定义注册过程的会员网站。此外,网站会动态生成用户角色(以前在 SF v1.xcredentials),用于限制对网站部分的访问。

我看过FOSUserBundle,除了说明书中"如何从数据库加载用户"链接中可用的代码之外,我看不到它提供了什么。正如我前面提到的,我的用户注册和用户管理中涉及很多自定义逻辑,我不想经历使用 FOSUserBundle 的学习曲线,只是为了用我自己的自定义方法覆盖很多方法等。

我对 Symfony2 的了解还不够多,无法决定是否从说明书代码中学习并在我自己的 UserBundle 中扩展它,或者花时间学习如何使用 FOSUserBundle 并使用我的自定义逻辑对其进行自定义。

总之,这就是我想对用户做的事情:

  1. 提供自定义注册工作流
  2. 动态更新用户角色/组成员身份(最初在登录期间,随后在会话期间)。

然后我的问题是 - 哪门课程需要我最小的学习曲线和努力(我只有不到一周的时间来启动和运行一个准系统网站 - 而且我只在业余时间进行 Web 开发)。

我是否:

  • 编写我自己的用户捆绑包,使用说明书中的代码作为起点
  • 了解如何使用 FOSUserBundle 并使用我的自定义逻辑对其进行自定义?(见上文)

这是一个古老的主题,但现在仍然非常有趣。我不同意弗洛伦特的回答,因为我认为它没有提供客观的观点。

FOSUserBundle提供了用户和组实现,就像Symfony已经提供的那样,你只需要配置。食谱和官方文档将允许您在不到一天的时间内完成这项工作。

"功能齐全"的控制器很有趣...只要您保持此捆绑包定义的方式。不要太原始,否则您将花费数天时间覆盖捆绑包的代码和配置。老实说,注册和丢失密码很容易实现,SF2表单的机制已经使处理错误变得容易。

视图是简约的,开箱即用的FOSUserBundle,制作你自己的视图。

如果我必须比较两条学习曲线,我会这样总结:两者都需要相同的时间来实现复杂的用户管理系统,但是在编写自己的提供程序时,您将更好地控制您的代码。

2年后,知道你做了什么选择以及它是如何进行的,会很有趣,Homunculus Reticulli。

FOSUserBundle提供:

  • UserGroup实现
  • 具有有用功能的控制器(注册、丢失密码)
  • 视图

如果您需要这些功能,请使用此捆绑包,它将节省您的时间!

我不知道您的身份验证逻辑有多复杂,但我很确定它可以与FOSUserBundle的逻辑相吻合。