Le fichier de configuration databases.yml
permet la configuration de
la connexion à la base. Il est utilisé par les deux ORM livré avec symfony : Propel et
Doctrine.
Le fichier principal de configuration databases.yml
pour le projet peut être trouvés
dans le répertoire config/
.
note
La plupart du temps, toutes les applications d'un projet partagent la même
base. C'est pourquoi le principal fichier de configuration de base de données est dans le
répertoire config/
du projet. Vous pouvez bien entendu passer outre la configuration
par défaut en définissant un fichier de configuration databases.yml
dans vos
répertoires de configuration d'application.
Comme indiqué dans l'introduction, le fichier databases.yml
est
sensible à l'environnement, bénéficie du
mécanisme de configuration en cascade
et peut inclure des constantes.
Chaque connexion décrit dans databases.yml
doit comprendre un nom, un nom de classe
de gestionnaire de base de données, et un ensemble de paramètres (param
) utilisé pour configurer
l'objet de base de données :
CONNECTION_NAME: class: CLASS_NAME param: { ARRAY OF PARAMETERS }
Le nom class
doit étendre la classe de base sfDatabase
.
Si la classe de gestionnaire de base de données ne peut être chargée automatiquement, le chemin file
peut être
défini et sera automatiquement inclus avant que le factory soit créé :
CONNECTION_NAME: class: CLASS_NAME file: ABSOLUTE_PATH_TO_FILE
note
Le fichier de configuration databases.yml
est mis en cache dans un fichier PHP, le
processus est automatiquement géré par la classe
sfDatabaseConfigHandler
.
tip
La configuration de la base de données peut également être configuré en utilisant la
tâche database:configure
. Cette tâche met à jour le databases.yml
selon les arguments que vous lui passez.
Propel
Configuration par défaut :
dev: propel: param: classname: DebugPDO debug: realmemoryusage: true details: time: { enabled: true } slow: { enabled: true, threshold: 0.1 } mem: { enabled: true } mempeak: { enabled: true } memdelta: { enabled: true } test: propel: param: classname: DebugPDO all: propel: class: sfPropelDatabase param: classname: PropelPDO dsn: mysql:dbname=##PROJECT_NAME##;host=localhost username: root password: encoding: utf8 persistent: true pooling: true
Les paramètres suivants peuvent être personnalisés dans la section param
:
Clé | Description | Valeur par défaut |
---|---|---|
classname |
La classe de l'adaptateur Propel | PropelPDO |
dsn |
Le DSN du PDO (obligatoire) | - |
username |
L'utilisateur de la base | - |
password |
Le mot de passe de la base | - |
pooling |
Pour activer le pooling | true |
encoding |
Le jeu de caractères par défaut | UTF-8 |
persistent |
Pour créer des connexions persistantes | false |
options |
Une série d'options Propel | - |
debug |
Options pour la classe DebugPDO |
n/a |
L'entrée debug
définit toutes les options décrites dans la
documentation Propel.
Le YAML suivant montre toutes les options disponibles :
debug: realmemoryusage: true details: time: enabled: true slow: enabled: true threshold: 0.001 memdelta: enabled: true mempeak: enabled: true method: enabled: true mem: enabled: true querycount: enabled: true
Doctrine
Configuration par défaut :
all: doctrine: class: sfDoctrineDatabase param: dsn: mysql:dbname=##PROJECT_NAME##;host=localhost username: root password: attributes: quote_identifier: false use_native_enum: false validate: all idxname_format: %s_idx seqname_format: %s_seq tblname_format: %s
Les paramètres suivants peuvent être personnalisés dans la section param
:
Clé | Description | Valeur par défaut |
---|---|---|
dsn |
Le DSN du PDO (obligatoire) | - |
username |
L'utilisateur de la base | - |
password |
Le mot de passe de la base | - |
encoding |
Le jeu de caractères par défaut | UTF-8 |
attributes |
Une série d'attributs Doctrine | - |
Les paramètres suivants peuvent être personnalisés dans la section attributes
:
Clé | Description | Valeur par défaut |
---|---|---|
quote_identifier |
Pour envelopper les identifiants avec des quotes | false |
use_native_enum |
Pour utiliser les énumérations native | false |
validate |
Pour activer la validation des données | true |
idxname_format |
Format pour les noms d'index | %s_idx |
seqname_format |
Format pour les noms de séquence | %s_seq |
tblname_format |
Format pour les noms de table | %s |
This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.