👨‍🎓
Plateforme formation
  • Bienvenue !
  • Slack
  • Premiers pas
    • S'identifier sur la plateforme
    • Créer une formation
  • Global
    • Formations
      • Utilisateurs
      • Séminaire
        • Récapitulatif avant formation
        • Session
        • Stagiaires
        • Page publique
        • Paramètres
        • Liste d'attente
      • Formation
      • Lieux de formation
      • Catégorie
      • Checklist
    • Calendrier
    • Les déclencheurs
    • Wordpress
    • Fournisseurs d'emails
  • Manager de centre
    • DPC
    • Champs personnalisés
    • Bilan pédagogique
    • Documents
    • Emails
    • Paiements
    • Factures
      • Facture DPC
    • Utilisateurs
  • Formateur
    • Les sessions de formation
      • Présences à une formation
  • Advanced
    • Charte graphique
    • Symfony 5
      • Assets
      • Fixtures
      • Test
      • Déploiement
    • Base de données
    • Développement
    • Userback
    • Aller plus loin avec les PDF
    • Hiérarchie des données
  • Réflexion
    • Recettes des fonctionnalités
    • Les conditions
Propulsé par GitBook
Sur cette page
  • Javascript
  • Librairies utilisées
  • CSS
  • Icônes
  • Intégration dans une page
  1. Advanced
  2. Symfony 5

Assets

Comment sont gérés les fichier JS et CSS dans Symfony ?

PrécédentSymfony 5SuivantFixtures

Dernière mise à jour il y a 5 ans

Mise en place de pour gérer les fichiers JS et CSS. C'est un module Symfony qui utilise Webpack.

Pour compiler les fichiers, il faut lancer la commande suivante :

yarn encore dev --watch

Javascript

Librairies utilisées

Zepto (jQuery-like light)

J'utilise la librairie qui est un jQuery très léger. Pour l'installer, il faut un package spécifique pour Webpack () :

yarn add webpack-zepto --dev

jQuery

Finalement, pour utiliser Select2 par exemple, il faut jQuery…

yarn add jquery

JSRouting

Le bundle permet d'utiliser les routes déclarées dans les controllers Symfony directement dans les fichiers Javascript.

Par contre, lorsqu'on rajoute une route, il ne faut pas oublier de lancer la commande suivante pour exporter les routes dans un fichier JSON :

bin/console fos:js-routing:dump --format=json --target=public/js/fos_js_routes.json

Ce fichier est ensuite utilisé dans le fichier Javascript via les lignes suivantes :

import Routing from '../../vendor/friendsofsymfony/jsrouting-bundle/Resources/public/js/router.min.js';
const routes = require('../../public/js/fos_js_routes.json');

# Génération d'une route
Routing.setRoutingData(routes);

CKEditor

# Installer le bundle
composer require friendsofsymfony/ckeditor-bundle

# Ajouter à Webpack/Encore
yarn add ckeditor@^4.0.0

Il est possible de créer des plugins pour CKEditor, pour ajouter de nouvelles fonctionnalités (comme l'intégration de champs personnalisés dans le contenu).

CSS

Les fichiers CSS sont générés via Sass. Pour cela, il faut installer les modules correspondants via la commande :

yarn add sass-loader@^7.0.1 node-sass --dev

Icônes

Pour utiliser la librairie, il faut l'ajouter au projet :

yarn add @fortawesome/fontawesome-free

Puis, il faut mettre les lignes suivantes dans le fichier app.js :

require('@fortawesome/fontawesome-free/css/all.min.css');
require('@fortawesome/fontawesome-free/js/all.js');

Intégration dans une page

Il est possible de déclarer un fichier Javascript spécifique à une page. Pour cela, il faut définir une "entry" dans le fichier de configuration de Webpack :

.addEntry('ma_page', './assets/js/ma_page.js')

Puis utiliser le nom de cette entrée dans la page désirée :

{{ encore_entry_script_tags('ma_page') }}

Il est aussi possible de faire ça avec un fichier CSS en utilisant la fonction encore_entry_link_tags('ma_page').

Pour le WYSIWYG des textes, j'utilise la librairie . Pour le mettre en place :

Les icônes de la plateforme sont fournies par .

Webpack/Encore
Zepto
webpack-zepto
FOSJsRoutingBundle
CKEditor
Font Awesome
Charte graphique