Symfony2和Twitter Bootstrap

22

我今天在Stack Overflow上发现了Twitter Bootstrap。我已经浏览了一些在线教程,如果我的理解是正确的,使用TB基本上包括以下步骤:

  1. 下载TB,提取CSS文件等
  2. 在您的HTML文档中引用所需的CSS、JS文件并使用定义好的CSS模式

我想在Symfony2中使用Twitter Bootstrap。考虑到我如何使用TB的理解,我认为使用Symfony很容易与之配合使用,因此我很惊讶看到有(实际上有几个)Bundles可以与Symfony一起使用。

因此,我的问题是:

  1. 为什么需要Bundle才能在Symfony2中使用Twitter Bootstrap?-我解释的方法不起作用吗(即直接在twig模板中添加引用)?

  2. 由于有几个可用的Twitter Bootstrap Bundles(至少有3个),哪个最容易使用(必须是最近提交的支持活跃项目,而不是一个死亡项目)?

4个回答

33

我非常确定这些套餐很棒,但它们也有优点和缺点。您也可以在项目中直接使用TB而不用Bundle。这就是我个人所做的方式:

  • git clone TB in web/ (获取最新更新并保持更新)
  • 我在twig模板中直接调用bootstrap.less,并使用Assetic和less过滤器。这样,我可以创建自己的.less文件,@import TB并使用他们令人惊叹的混合功能。

这种方式真的很强大。当我在无调试模式下使用Assetic时,结合yui-compressor,所有我的js和less文件都编译为一个单独的.css输出和一个单独的.js输出。您也可以在.less而不是.css中受益于所有TB功能。


感谢您的及时回答。您真是我的救星!我一直在为该走哪个方向而苦恼。如果您有时间,能否再详细解释一下呢?如果能提供一个小片段,展示使用Assetic、yui-compressor等twig模板的配置设置等,那就太好了,因为这对我来说都是新技术。谢谢。 - Homunculus Reticulli
3
这本食谱书对您来说应该非常完美:http://symfony.com/doc/current/cookbook/assetic/yuicompressor.html ;) - guillaumepotier
1
一些软件包非常有用,即使您直接使用Bootstrap也是如此。例如,您可以借用Twig中的表单主题并直接在项目中使用它们。 - Acyra
嘿,我正在做类似的事情,不同之处在于:我将Bootstrap放在BundleFooBar / Resources / public中,因此在assets:install后,我将其放在web文件夹中,但是,我有一个小问题,需要将样式表链接与bootstrap.css和bootstrap-responsive.css分开,我的问题在这里:http://stackoverflow.com/questions/17893873/assetic-isnt-merging-bootstrap-css-and-bootstrap-responsive-css - Wils

7

有两个主要的捆绑包可以将Symfony与Twitter Bootstrap集成:

在我看来:

MopaBootstrapBundle更加复杂,提供了自己的布局结构(当然您也可以创建自己的布局结构),并且具有许多定义的功能、额外的assetic和表单等集成。

BcBootstrapBundle更加简单清晰,您可以使用自己的布局结构,并且有很多定义的功能、额外的assetica和表单等集成。

不使用任何集成包也是一种选择,但是您会失去与表单、assetic、less等的集成(正如@Acyra在评论中提到的)。

我更喜欢使用BcBootstrapBundle及其额外的集成功能,并使用自己的自定义布局结构。


3
你可以使用Twitter Bootstrap(TB)仅向项目添加CSS。然后,您就有了一个起点,可以比从头开始更加视觉化地完成某些事情。正如您在第一部分中所描述的那样。
但是,您还可以从处理与TB模板集成的Bundle中检索更有趣的内容。例如:
- {{link1:具有设置一些基本列的默认布局}} - {{link2:CRUD生成的集成}} - {{link3:具有基本表单元素}}
例如,在Symfony 1.4中(我知道此帖子谈论sf2),您可以使用插件将新主题添加到管理生成器中,以获得漂亮的TB集成而不是默认主题。我知道在sf2中没有官方管理生成器,但它可用于CRUD。

自symfony 1.0以来,还有一件事情可能是真实的,不是所有的bundles都被很好地实现、开发、维护、测试和文档化(除了核心团队的那些bundles(FOS* Bundle,Doctrine,Propel等)。所以我建议您测试它们全部,看看它们是否符合您的需求,否则可以从中汲取灵感来改进它们(它们几乎都在github上)或者构建您自己的bundle。

顺便说一下,有许多Bundle可供使用...


1

Symfony和Bootstrap更新: Symfony的文档细节总是有点滞后,因此在这里更新一下Symfony。2.6版本及更高版本现在已经包含了与Twitter Bootstrap的基本集成。

http://symfony.com/blog/new-in-symfony-2-6-bootstrap-form-theme

希望这篇文章能为某些人节省时间,并且能够像Symfony文档中所解释的那样正常工作!

但是第三方 Bundle 内部怎么办?比如 Fos UserBundle。 - some_groceries
1
根据Symfony的文档,集成Bootstrap应该很容易,只需扩展主题视图或嵌入这些文档中的片段之一即可。由于Bootstrap主要是JS和CSS库,因此任何bundle都应该能够访问这些资源。新的表单主题有两种布局:普通布局和水平布局。要将此新主题应用于应用程序的所有表单,请使用以下配置:{% form_theme form 'bootstrap_3_layout.html.twig' %} {# {% form_theme form 'bootstrap_3_horizontal_layout.html.twig' %} #} - Aaron Belchamber

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接