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
 
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 | utf8 | 
persistent | 
  Pour créer des connexions persistantes | false | 
options | 
  Une série d'options Propel | - | 
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 | utf8 | 
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.