7

我见过很多人尝试使用 FOSUserBundle。

我已经为此苦苦挣扎了 6 个小时。只是为了能够制作自定义用户注册表单。基本文档有 6 页长:基本的 . 从我的角度来看,以下是使用 FOSUserBundle 的所有缺点:

  • 您必须复制粘贴他们的视图才能使继承成为可能
  • 他们在数据库上有自己表:fos_user. 因此,您必须将所有代码基于您的user实体,该实体是BaseUser. 如果您的数据库遵循约定(就像 wordpress 一样,所有表都以 开头wp_),这会破坏您的约定。
  • 您必须使用诸如“如果 fos_user_content 块为空,我想没有什么可显示的内容,否则我必须重新组织我的整个视图以显示 fos_user_content 块(注册,修改用户配置文件等) "
  • 现在我看到如果您需要两种不同的注册表单(例如,一种用于客户,一种用于合作伙伴),除非您破解,否则这是不可能的。见这里

所以我只是想知道:使用 FOSUserBundle 有什么意义?如果我已经按照 Symfony 帮助(表单、表单验证和会话)中解释的非常基本的事情完成了注册过程,并且我只是复制粘贴我的代码,从我的角度来看,这比安装要快得多, FOSUserBundle 的配置、继承、修改等。

知道我做了什么,FOSUserBundle有什么优势?什么可以让我改变并花更多时间让它与我的项目一起工作,而不是从另一个项目中重新使用我的(表单、表单验证和会话)?

4

2 回答 2

5

好吧,你的问题听起来更像是咆哮,但你得到了一些观点。

在我看来,FOSUserBundle社区中许多 Bundle 的主要问题是,他们试图使其可定制、通用、可重用等等。

目标是公平的,但实际上它通常会导致代码对人类不友好。大多数情况下,您将花费更多时间来“完成”使用社区捆绑包而不是自己制作(请参阅奏鸣曲捆绑包)。

我并不是说它们是糟糕的捆绑包,一点也不,但它们应该有不同的用途

对我来说,这样的捆绑包可以帮助新手快速实施,完成任务,并且在快速应用程序开发的情况下,完成所有注册过程后获得一个完全工作的应用程序可能真的很容易。

但大多数时候,您会意识到使用第三方代码将您与他们自己的概念联系得太紧密,这是错误的。

相比之下,我非常喜欢 npm 社区,有很多带有一个功能的小包,您可以轻松集成,同样,当我想发布开源时,我尝试使用而不是捆绑项目。关键是框架实现没有任何概念或理念,并且很容易集成到现有项目中。

我记得早期我不得不使用 Joomla、Drupal、Wordpress 等等,这是“插件/扩展/模块”的时尚,就像我们经常听到的“有一个捆绑包”一样,有些人,或者公司只是想完成它,无论质量如何,应用程序的未来,因为它已经售出。

总而言之,这样的包可以极大地帮助和加快开发过程,但要小心,如果您有自定义要求、性能影响等,请不要使用它们,但是如果您只想快速验证概念,或者简单应用,值得。

这是一个基于我自己的经验和使用它的失败的小说故事:)

于 2014-02-03T10:47:33.787 回答
1

我知道这是一篇旧文章,但随着搜索引擎不断索引这个......

仅供参考 FOSUserBundle 已经停产并且在 Symfony 4 和 5 中没有用...

来源

  1. 不再在文档中维护消息 #2874
  2. 这个项目有维护吗?#2996
  3. Caedendi 于 2020 年 1 月 10 日对替代品发表评论
于 2021-02-25T13:37:45.880 回答