The symfony Reference Book

Principes des fichiers de configuration

You are currently browsing
the website for symfony 1

Visit the Symfony2 website


About

You are currently reading "The symfony Reference Book" which is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.

Master symfony

Be trained by SensioLabs experts (2 to 6 day sessions -- French or English).
trainings.sensiolabs.com

Books on symfony

Learn more about symfony with the official guides.
books.sensiolabs.com

L'audit Qualité par SensioLabs

200 points de contrôle de votre applicatif web.
audit.sensiolabs.com

Chapter Content

Cache

Constantes

Paramètres de configuration

Paramètres de l'application

Constantes spéciales

Répertoires

Sensibilisation à l'environnement

Configuration en cascade

symfony training
Be trained by symfony experts
May 29: Paris (Web Development with Symfony2 - Français)
May 31: Paris (Mastering Symfony2 - Français)
Jun 06: Paris (Introduction to Symfony2 - Français)
Jun 06: Paris (Introduction to Symfony2 - English)
Jun 06: Paris (Going Further with Symfony2 - English)
and more...

Search


powered by google
You are currently browsing "The symfony Reference Book" in French for the 1.4 version - Switch to version: - Switch to language:
Creative Commons License This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.
The symfony reference guide
Support symfony!
Buy this book
or donate.
Buy The symfony reference guide from amazon.com
You have been redirected to the symfony 1.4 documentation.
Both symfony 1.3 and symfony 1.4 share the same feature set and documentation.
Read about why we have two different versions.

Les fichiers de configuration de symfony sont basés sur un ensemble commun de principes et partagent quelques propriétés communes. Cette section les décrit en détail, et sert de référence pour les autres sections décrivant les fichiers de configuration YAML.

Cache

Tous les fichiers de configuration de symfony sont mis en cache dans des fichiers PHP par les classes de gestionnaire de configuration. Quand le paramètre is_debug est mis à false (par exemple pour l'environnement de prod), le fichier YAML est seulement consulté lors de la première requête, le cache PHP est utilisé pour les requêtes suivantes. Cela signifie que le "lourd" travail est fait qu'une seule fois, lorsque le fichier YAML est analysé et interprété la première fois.

Dans l'environnement de dev, où is_debug est défini par défaut à true, la compilation se fait à chaque modification du fichier (symfony contrôle la date de modification du fichier).

L'analyse et la mise en cache de chaque fichier de configuration se fait par des classes spécialisées de gestionnaire de configuration, configuré en config_handler.yml.

Dans les sections suivantes, lorsque nous parlons de "compilation", cela décrit la première fois que le fichier YAML est converti en un fichier PHP et stocké dans le cache.

Pour forcer le rechargement du cache de configuration, vous pouvez utiliser la tâche cache:clear :

$ php symfony cache:clear --type=config

Constantes

Les fichiers de configuration : core_compile.yml, factories.yml, generator.yml, databases.yml, filters.yml, view.yml, autoload.yml

Certains fichiers de configuration permettent l'utilisation de constantes pré-définies. Les constantes sont déclarées avec des substituants en utilisant la notation %XXX% (où XXX est une clé en majuscules) et sont remplacés par leur valeur réelle pendant la "compilation".

Paramètres de configuration

Une constante peut être n'importe quel paramètre défini dans le fichier de configuration settings.yml. La clé du substituant est le nom de la clé du paramètre en majuscule préfixé avec SF_ :

logging: %SF_LOGGING_ENABLED%

Quand symfony compile le fichier de configuration, il remplace toutes les occurrences de substituant %SF_XXX% par leur valeur définie dans settings.yml. Dans l'exemple ci-dessous, il remplacera le substituant SF_LOGGING_ENABLED par la valeur du paramètre logging_enabled définie dans settings.yml.

Paramètres de l'application

Vous pouvez également utiliser les paramètres définis dans le fichier de configuration app.yml en préfixant le nom de la clé avec APP_.

Constantes spéciales

Par défaut, symfony définit quatre constantes selon le contrôleur frontal actuel :

Constantes Description Méthode de configuration
SF_APP L'actuel nom de l'application getApplication()
SF_ENVIRONMENT L'actuel nom de environnement getEnvironment()
SF_DEBUG Si le debug est activé ou non isDebug()
SF_SYMFONY_LIB_DIR Le répertoire des librairies de symfony getSymfonyLibDir()

Répertoires

Les constantes sont également très utiles lorsque vous avez besoin pour faire référence à un répertoire ou un chemin de fichier sans le coder en dur. Symfony définit un certain nombre de constantes pour les répertoires communs du projet et de l'application.

La racine de la hiérarchie est la racine du répertoire du projet, SF_ROOT_DIR. Toutes les autres constantes sont dérivées de ce répertoire racine.

La structure de répertoire du projet est définie comme suit :

Constantes Valeur par défaut
SF_APPS_DIR SF_ROOT_DIR/apps
SF_CONFIG_DIR SF_ROOT_DIR/config
SF_CACHE_DIR SF_ROOT_DIR/cache
SF_DATA_DIR SF_ROOT_DIR/data
SF_DOC_DIR SF_ROOT_DIR/doc
SF_LIB_DIR SF_ROOT_DIR/lib
SF_LOG_DIR SF_ROOT_DIR/log
SF_PLUGINS_DIR SF_ROOT_DIR/plugins
SF_TEST_DIR SF_ROOT_DIR/test
SF_WEB_DIR SF_ROOT_DIR/web
SF_UPLOAD_DIR SF_WEB_DIR/uploads

La structure de répertoire de l'application est définie dans le répertoire SF_APPS_DIR/APP_NAME :

Constantes Valeur par défaut
SF_APP_CONFIG_DIR SF_APP_DIR/config
SF_APP_LIB_DIR SF_APP_DIR/lib
SF_APP_MODULE_DIR SF_APP_DIR/modules
SF_APP_TEMPLATE_DIR SF_APP_DIR/templates
SF_APP_I18N_DIR SF_APP_DIR/i18n

Enfin, la structure du répertoire du cache de l'application est définie comme suit :

Constantes Valeur par défaut
SF_APP_BASE_CACHE_DIR SF_CACHE_DIR/APP_NAME
SF_APP_CACHE_DIR SF_CACHE_DIR/APP_NAME/ENV_NAME
SF_TEMPLATE_CACHE_DIR SF_APP_CACHE_DIR/template
SF_I18N_CACHE_DIR SF_APP_CACHE_DIR/i18n
SF_CONFIG_CACHE_DIR SF_APP_CACHE_DIR/config
SF_TEST_CACHE_DIR SF_APP_CACHE_DIR/test
SF_MODULE_CACHE_DIR SF_APP_CACHE_DIR/modules

Sensibilisation à l'environnement

Les fichiers de configuration: settings.yml, factories.yml, databases.yml, app.yml

Certains fichiers de configuration de symfony sont sensibles à l'environnement, leur interprétation dépend de l'environnement symfony actuel. Ces fichiers ont des sections différentes qui définissent une configuration différente pour chaque environnement. Lorsque vous créez une nouvelle application, symfony crée une configuration sensible pour les trois environnements par défaut de symfony : prod, test, et dev :

prod:
  # Configuration pour l'environnement de `prod`
 
test:
  # Configuration pour l'environnement de `test`
 
dev:
  # Configuration pour l'environnement de `dev`
 
all:
  # Configuration par défaut de tous les environnements

Lorsque symfony a besoin d'une valeur à partir d'un fichier de configuration, il fusionne la configuration disponible dans la section de l'environnement actuel avec la configuration all. La section spéciale all décrit la configuration par défaut pour tous les environnements. Si la section de l'environnement n'est pas définie, symfony redescend sur la configuration de all.

Configuration en cascade

Les fichiers de configuration : core_compile.yml, autoload.yml, settings.yml, factories.yml, databases.yml, security.yml, cache.yml, app.yml, filters.yml, view.yml

Certains fichiers de configuration peuvent être définis dans plusieurs sous-répertoires config/ contenus dans la structure des répertoires du projet.

Lorsque la configuration se compile, les valeurs des différents fichiers sont fusionnés selon un ordre de priorité :

Par exemple, le settings.yml défini dans un répertoire de l'application hérite de la configuration définie dans le répertoire config/ principal du projet, et éventuellement de la configuration par défaut contenus dans le framework lui-même (lib/config/config/settings.yml).

Quand un fichier de configuration est sensible à l'environnement, il peut être défini dans plusieurs répertoires, la liste prioritaire suivante s'applique :

  1. Module
  2. Application
  3. Projet
  4. Environnement spécifique
  5. Tous les environnements
  6. Par défault
Le fichier de configuration settings.yml »
« Le format YAML

Questions & Feedback

If you find a typo or an error, please register and open a ticket.

If you need support or have a technical question, please post to the official user mailing-list.