在使用Symfony 1.x几年后,我正在熟悉Symfony 2。
我需要创建一个具有自定义注册过程的会员网站。此外,网站会动态生成用户角色(以前在 SF v1.x 中credentials
),用于限制对网站部分的访问。
我看过FOSUserBundle,除了说明书中"如何从数据库加载用户"链接中可用的代码之外,我看不到它提供了什么。正如我前面提到的,我的用户注册和用户管理中涉及很多自定义逻辑,我不想经历使用 FOSUserBundle 的学习曲线,只是为了用我自己的自定义方法覆盖很多方法等。
我对 Symfony2 的了解还不够多,无法决定是否从说明书代码中学习并在我自己的 UserBundle 中扩展它,或者花时间学习如何使用 FOSUserBundle 并使用我的自定义逻辑对其进行自定义。
总之,这就是我想对用户做的事情:
- 提供自定义注册工作流
- 动态更新用户角色/组成员身份(最初在登录期间,随后在会话期间)。
然后我的问题是 - 哪门课程需要我最小的学习曲线和努力(我只有不到一周的时间来启动和运行一个准系统网站 - 而且我只在业余时间进行 Web 开发)。
我是否:
- 编写我自己的用户捆绑包,使用说明书中的代码作为起点
- 了解如何使用 FOSUserBundle 并使用我的自定义逻辑对其进行自定义?(见上文)
这是一个古老的主题,但现在仍然非常有趣。我不同意弗洛伦特的回答,因为我认为它没有提供客观的观点。
FOSUserBundle提供了用户和组实现,就像Symfony已经提供的那样,你只需要配置。食谱和官方文档将允许您在不到一天的时间内完成这项工作。
"功能齐全"的控制器很有趣...只要您保持此捆绑包定义的方式。不要太原始,否则您将花费数天时间覆盖捆绑包的代码和配置。老实说,注册和丢失密码很容易实现,SF2表单的机制已经使处理错误变得容易。
视图是简约的,开箱即用的FOSUserBundle,制作你自己的视图。
如果我必须比较两条学习曲线,我会这样总结:两者都需要相同的时间来实现复杂的用户管理系统,但是在编写自己的提供程序时,您将更好地控制您的代码。
2年后,知道你做了什么选择以及它是如何进行的,会很有趣,Homunculus Reticulli。
FOSUserBundle
提供:
-
User
和Group
实现 - 具有有用功能的控制器(注册、丢失密码)
- 视图
如果您需要这些功能,请使用此捆绑包,它将节省您的时间!
我不知道您的身份验证逻辑有多复杂,但我很确定它可以与FOSUserBundle
的逻辑相吻合。