Intégrer Twitter Bootstrap à votre projet Symfony est devenu extrêmement simple puisque le composer peut gérer cela.

Depuis votre console, rendez-vous dans le dossier de votre projet et installer votre dépendance de cette façon :

composer require twbs/bootstrap

Voilà, Bootstrap  se trouve maintenant dans votre dossier "vendor". Il ne reste plus qu'à configurer assetic pour pouvoir compiler les fichiers less en css et utiliser Bootstrap dans nos layouts. Pour cela, il suffit d'ajouter la configuration pour bootstrap dans votre config.yml :

# app/config/config.yml
 ...
 # Assetic Configuration
 assetic:
debug: %kernel.debug%
use_controller: false
bundles: [ ]
filters:
less:
node: /usr/local/bin/node
node_paths: [/usr/local/lib/node_modules]
apply_to: "\.less$"
cssrewrite: ~

Comme toujours dans ce fichier, respectez bien les indentations. Le chemin vers node est à adapter selon votre configuration système.

Il faut ensuite configurer assetic pour générer vos fichiers css et js.

# app/config/config.yml
 …
 # Assetic Configuration
assetic:
 ............
 assets:
 bootstrap_css:
 inputs:
 - %kernel.root_dir%/../vendor/twbs/bootstrap/less/bootstrap.less
 filters:
 - less
 - cssrewrite
 output: css/bootstrap.css
 bootstrap_js:
 inputs:
 - %kernel.root_dir%/../vendor/twbs/bootstrap/js/affix.js
 - %kernel.root_dir%/../vendor/twbs/bootstrap/js/alert.js
 - %kernel.root_dir%/../vendor/twbs/bootstrap/js/button.js
 - %kernel.root_dir%/../vendor/twbs/bootstrap/js/carousel.js
 - %kernel.root_dir%/../vendor/twbs/bootstrap/js/collapse.js
 - %kernel.root_dir%/../vendor/twbs/bootstrap/js/dropdown.js
 - %kernel.root_dir%/../vendor/twbs/bootstrap/js/modal.js
 - %kernel.root_dir%/../vendor/twbs/bootstrap/js/tooltip.js
 - %kernel.root_dir%/../vendor/twbs/bootstrap/js/popover.js
 - %kernel.root_dir%/../vendor/twbs/bootstrap/js/scrollspy.js
 - %kernel.root_dir%/../vendor/twbs/bootstrap/js/tab.js
 - %kernel.root_dir%/../vendor/twbs/bootstrap/js/transition.js
 output: js/bootstrap.js

Enfin, afin de profiter des icônes Glyphicon de Bootstrap, il faut ajouter la police dans votre dossier web. Il suffit simplement de copier le dossier FONTS de bootstrap vers votre dossier web

cp -a vendor/twbs/bootstrap/fonts web

Voilà, tout est prêt. il ne reste plus qu'à générer le dump assetic:

php app/console assetic:dump

Puis ensuite à ajouter le css et js dans votre template twig :

<!-- Bootstrap -->
 <link rel="stylesheet" href="{{ asset('css/bootstrap.css') }}">
 <script src="{{ asset('js/bootstrap.js') }}"></script>

C'est tout, vous avez installé et configuré correctement Bootstrap + Glyphicon. Notez que vous devez ajouter jQuery pour utiliser les plugins javascript de Bootstrap. Si ce n'est pas le cas :

composer require components/jquery

 

8 responses to “Utiliser Bootstrap avec Symfony 2

    Author’s gravatar

    j'ai réussi à faire toute les étapes sauf que cette ligne:apply_to: ".less$" dans app/config/config.yml ne passe pas il me marque une erreur.Ma question est: il s'applique sur quoi? node.js?

    Author’s gravatar

    c'est pour préciser que ce filtre less n'est à appliquer que sur les fichiers avec l'extension .less

    Author’s gravatar

    Merci pour la précision.Encore une question:
    Faudrait-il que je mette le lien du dossier correspond: apply_to: "vendor/twbs/bootstrap/less"?

    Author’s gravatar

    non, pas besoin, assetic surveillera tous les ficheirs de type .less dans votre porjet

    symfony, pas besoin de préciser le chemin. Pour l'erreur, il faut peut-être vérifier l'indentation. J'avoue que le code sur l'article n'est pas très explicite au sujet de l'indentation.

    Exemple :

    http://symfony.com/doc/current/cookbook/assetic/apply_to_option.html

    Voir ficheir joint en exemple, qui montre l'indentation de chaque ligne (même si dans ce cass, c'est pour .coffee)

    Author’s gravatar

    Merci encore pour plus de précision.Je n'ai plus d'erreur qui s'affiche mais par contre après avoir mis le lien :

    dans ma vue il n' y'a pas de présence de bootstrap.
    Je sais pas si j'ai oublié quelque chose mais je pense avoir été fidèle au tutoriel.Merci encore pour l'aide.Van

    Author’s gravatar

    Lors du dump assetic, le ficheir css est bien généré ? est-il présent dans votre dossier ?

    regénérer les symlink ?

    php app/console assets:install root --symlink

    Essayez aussi de vider le cache avant de faire le dump :

    php app/console cache:clear

    Author’s gravatar

    voici les résultats après la commande :php bin/console assetic:dump
    Dumping all dev assets.
    Debug mode is on.
    voici pour la seconde commande :php bin/console assets:install root --symlink
    [InvalidArgumentException]
    The target directory "root" does not exist.
    pour la dernière:php bin/console cache:clear
    [OK] Cache for the "dev" environment (debug=true) was successfully cleared.
    Mais ça ne passe pas toujours

    Author’s gravatar

    Par contre je ne sais pas ou est le dossier des fichiers css générés?

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.