Symfony 4 不鼓励捆绑,这是为什么?什么取代了它们?

Bre*_*old 1 bundles symfony symfony4

在使用 Symfony 4.1 进行练习时,我注意到捆绑页面上的说法:( https://symfony.com/doc/current/bundles.html )

在 4.0 之前的 Symfony 版本中,建议使用捆绑包来组织您自己的应用程序代码。不再建议这样做,捆绑包只能用于在多个应用程序之间共享代码和功能。

这是为什么?用什么来替代捆绑包?只需在一个“App”包中创建目录?

那么仅仅一个子文件夹就可以代替一个包吗?

小智 5

您的问题的答案写在 symfony 网站的本页底部。总结一下

但捆绑包意味着可以作为独立软件重复使用。如果 UserBundle 不能在其他 Symfony 应用程序中“按原样”使用,那么它不应该是自己的包。此外,如果 InvoiceBundle 依赖于 ProductBundle,那么拥有两个单独的捆绑包就没有任何优势。

进而

不要创建任何捆绑包来组织您的应用程序逻辑。

Symfony 应用程序仍然可以使用第三方捆绑包(安装在供应商/中)来添加功能,但您应该使用 PHP 命名空间而不是捆绑包来组织您自己的代码。

因此,要回答您的问题“那么,仅用子文件夹即可代替捆绑包?” 是的!如果它是一段可重用的代码,可供其他应用程序使用,请将其放入捆绑包中,否则,如果它只是用来组织应用程序,请使用文件夹(带有名称空间)。