Ao tentar integrar o Twitter Bootstrap com o framework Symfony2, me deparei com alguns artigos e questões SO referentes ao uso de bundles. Embora eu não tenha nada contra pacotes, cheguei a esta solução evitando-os. Principalmente porque não consegui fazer funcionar corretamente usando a abordagem de pacote …
Primeiro você precisa adicionar as dependências ao seu arquivo composer.json :
"require": {
...
"twitter/bootstrap": "3.*",
"components/jquery": "1.11.1"
}
Agora, adicione o seguinte ao seu app config config.yml , a fim de tornar o Assetic para gerenciar seus ativos de aplicativo:
# Assetic Configuration
assetic:
debug: "%kernel.debug%"
use_controller: false
bundles: [ '*Place your bundle names here*' ]
filters:
cssrewrite: ~
assets:
bootstrap_js:
inputs:
- %kernel.root_dir%/../vendor/twitter/bootstrap/dist/js/bootstrap.js
bootstrap_css:
inputs:
- %kernel.root_dir%/../vendor/twitter/bootstrap/dist/css/bootstrap.css
- %kernel.root_dir%/../vendor/twitter/bootstrap/dist/css/bootstrap-theme.css
filters: [cssrewrite]
bootstrap_glyphicons_ttf:
inputs:
- %kernel.root_dir%/../vendor/twitter/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf
output: "fonts/glyphicons-halflings-regular.ttf"
bootstrap_glyphicons_eot:
inputs:
- %kernel.root_dir%/../vendor/twitter/bootstrap/dist/fonts/glyphicons-halflings-regular.eot
output: "fonts/glyphicons-halflings-regular.eot"
bootstrap_glyphicons_svg:
inputs:
- %kernel.root_dir%/../vendor/twitter/bootstrap/dist/fonts/glyphicons-halflings-regular.svg
output: "fonts/glyphicons-halflings-regular.svg"
bootstrap_glyphicons_woff:
inputs:
- %kernel.root_dir%/../vendor/twitter/bootstrap/dist/fonts/glyphicons-halflings-regular.woff
output: "fonts/glyphicons-halflings-regular.woff"
jquery:
inputs:
- %kernel.root_dir%/../vendor/components/jquery/jquery.js
Isso também garantirá que seu bootstrap.css encontrará os glifos adorados na pasta de fontes .
Agora, para incluir os ativos em seus layouts, você pode editar, por exemplo, :: base.html.twig
<head>
...
{% stylesheets '@bootstrap_css' %}
<link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}"/>
{% endstylesheets %}
</head>
<body>
....
{% javascripts '@jquery' '@bootstrap_js' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
</body>
E voilà!