Sur cette page
Utiliser des réglages différents selon l’environnement
Le site local et le site de production partagent rarement les mêmes réglages : URL de base, mode debug, répertoire de sortie… Cecil permet de conserver un unique cecil.yml et de le surcharger selon l’environnement.
Garder les valeurs de production dans cecil.yml
title: "My site"
baseurl: https://example.com/
debug: false
Surcharger avec des fichiers de configuration supplémentaires
Créez un fichier contenant uniquement les clés à modifier, par exemple config/dev.yml :
baseurl: http://localhost:8000/
debug: true
Puis chargez-le avec l’option --config, disponible avec les commandes build et serve :
php cecil.phar serve --config=config/dev.yml
Vous pouvez passer plusieurs fichiers, séparés par des virgules. Ils sont fusionnés dans l’ordre après cecil.yml : chaque fichier surcharge donc les précédents.
php cecil.phar build --config=config/prod.yml,config/local.yml
Surcharger avec des variables d’environnement
Toute clé de configuration peut être définie par une variable d’environnement préfixée par CECIL_, en majuscules. Les clés imbriquées sont séparées par un underscore (par exemple CECIL_OUTPUT_DIR définit output.dir) :
export CECIL_BASEURL="https://staging.example.com/"
export CECIL_DEBUG=true
php cecil.phar build
Cecil charge aussi un fichier .env à la racine du site, s’il existe (les variables déjà définies par le système sont conservées) :
CECIL_BASEURL="http://localhost:8000/"
CECIL_DEBUG=true
Les variables d’environnement sont appliquées par-dessus les fichiers de configuration, ce qui les rend pratiques en CI, par exemple :
# .gitlab-ci.yml
pages:
variables:
CECIL_ENV: production
CECIL_OUTPUT_DIR: public
Lire l’environnement dans les templates
Utilisez la fonction getenv pour adapter les templates, par exemple pour n’inclure les statistiques d’audience qu’en production :
{% if getenv('CECIL_ENV') == 'production' %}
{{ include('partials/analytics.html.twig') }}
{% endif %}
La variable site.debug indique si le mode debug est activé :
{% if site.debug %}{{ dump(page) }}{% endif %}