Symfony2概念问题:普通捆绑包与特定捆绑包

Symfony2概念问题:普通捆绑包与特定捆绑包

关于我的Symfony2应用程序,我有几个问题。

它将有一个前端和一个后端,并且它们将使用一些通用代码(例如日期显示器,分页器,一些经常使用的模板等)。

因此,我创建了一个FrontendBundle和一个BackendBundle,它们分别包含各自的布局。第一个问题:为前端和后端创建捆绑包(这是甚至没有控制器的“通用”捆绑包)的优良作法吗?

第二个问题:我读过一本食谱,不应该将布局放在成束的东西中,而应该放在app / Resources / views /目录中。我已经有一个base.html.twig文件了,我想知道是否也应该像frontend_layout.html.twig文件一样放置布局?

我创建了一个名为RootBundle的捆绑包,其中包含我的应用程序在前端和后端所需的所有内容。这是一个好习惯吗?或者我应该为提出的每个功能创建专用的包,例如PaginatorBundle,DateDisplayerBundle等?我有一个“杂项”捆绑包,其中包含我不知道放在哪里的所有东西,这听起来很奇怪。你是怎样做的?


POPMUISE
浏览 374回答 3
3回答

慕的地6264312

我建议创建一个DateDisplayerBundle和PaginatorBundle,而不是将它们的相关代码放在更通用的捆绑软件中。这有几个原因:每个捆绑软件的作用非常明确,您知道代码在哪里。当您有单独的捆绑包时,在一个不同项目之间共享功能块(日期显示器,分页器)会更简单,而您可能需要修剪一个捆绑包。没有硬性规定说捆绑软件必须有控制器。捆绑包可以包含业务逻辑,模板,控制器和配置的任何组合,但是对您可以在其中存储的内容没有任何限制。另一方面,如果您的功能不是很复杂,则可能根本不保证将其包含在捆绑软件中。在这种情况下,您可以为其创建一个库/vendor。Symfony以这种方式使用了许多库(例如,参见Monolog和Doctrine。)关于第二个问题,我认为保留布局的原因app\Resources\views是因为它是您跟踪所有布局的便捷方式。当您的项目包含许多捆绑销售商品时,您可能会忘记某个布局的位置。但是,如果将它们全部放在一个集中的位置,您将始终确切知道要看的位置。与Symfony2中的许多事情一样,这不是一成不变的规则。您可以轻松地将布局存储在捆绑中,但是我不建议这样做。至于关于一般Root捆绑包的问题,我想说在大多数情况下,您应该避免在一个捆绑包中拖弄一堆其他功能。请参阅我先前的有关保持捆绑软件特定性的观点。当我开始使用Symfony2进行开发时,在确定应将哪些代码放入哪个包中时遇到了一些麻烦。这不是我习惯于思考编程的方式。但是最终您开始看到拼图的各个部分如何匹配,这使确定捆绑结构变得更加容易。

斯蒂芬大帝

您的观点很不错,但我强烈不同意您关于将某些内容放入vendor文件夹的建议。此文件夹在您的存储库中应被忽略,正在创建并用bin/vendors脚本填充。
打开App,查看更多内容
随时随地看视频慕课网APP