Integrare Bootstrap in sabloane - Tutorial Symfony
Postat la Sun 19 July 2015 in tutoriale, symfony 2
Cei mai multi dezvoltatori nu au talente extraordinare in scrierea de CSS si cel mai des utilizeaza librarii CSS existe ce ofera cam tot ce e necesar pentru realizarea de interfete corespunzatoare pentru utilizatori. Dintre cele mai utilzate sunt Bootstrap si Foundation
Vom vorbi despre integrarea Bootstrap intr-un proiect Symfony 2 prin Composer.
Pentru asta vom include ca dependinte ale proiectului in fisierul composer.json:
1 2 3 4 5 | "require": { ... "twitter/bootstrap": "3.*", "components/jquery": "1.11.1" } |
Adaugam de asemenea in fisierul app\config\config.yml pentru ca aceste librarii sa fie accesibile prin functia Assetic:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | # 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
|
Acum putem include aceste librarii in sablonul principal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | {# app/Resources/views/base.html.twig #}
<!DOCTYPE html>
<html>
<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>
</html>
|
Mai recomand sa modificati si fisierul app\config\security.yml in cazul cand folositi reguli de access a paginilor, incluzand fonts in lista celor ce sunt accesibile:
1 2 3 4 5 | firewalls:
# disables authentication for assets and the profiler, adapt it according to your needs
dev:
pattern: ^/(_(profiler|wdt)|css|images|js|fonts)/
security: false
|
Mai multe despre gestionare asset-urilor gasiti aici.