FOSUserBundle:有什么意义?

Oli*_*ons 8 symfony fosuserbundle

我见过很多人试图使用FOSUserBundle.

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

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

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

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

Bor*_*éry 5

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

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

目标是公平的,但实际上它经常导致不友好的代码。大多数情况下,使用社区包比制作自己的包要花更多的时间来“完成”(请参阅​​ Sonata 包)。

我并不是说它们是坏包,完全不是,但它们应有不同的用途

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

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

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

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

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

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