Caution: You are browsing the legacy symfony 1.x part of this website.

Il file di configurazione databases.yml

1.2
Symfony version
1.4
Language

La configurazione databases.yml consente la configurazione della connessione al database. È usata da entrambi gli ORM preinstallati con symfony: Propel e Doctrine.

Il file principale di configurazione databases.yml per un progetto può essere trovato nella cartella config/.

note

La maggior parte delle volte, tutte le applicazioni di un progetto condividono lo stesso database. Questo è il motivo per cui il principale file di configurazione del database è nella cartella config/ del progetto. Naturalmente si può non tenere conto della configurazione predefinita, definendo un file di configurazione databases.yml nelle cartelle di configurazione dell'applicazione.

Come discusso in sede di introduzione, il file databases.yml è consapevole dell'ambiente, trae beneficio dal meccanismo di configurazione a cascata, e può includere costanti.

Ogni connessione descritta nel file databases.yml deve comprendere un nome, un nome del gestore di classe del database e un set di parametri (param) usati per configurare l'oggetto database:

CONNECTION_NAME:
  class: CLASS_NAME
  param: { ARRAY OF PARAMETERS }

Il nome class dovrebbe estendere la classe base sfDatabase.

Se la classe che gestisce il database non può essere autocaricata, un file percorso può essere definito e sarà automaticamente incluso prima che il factory sia creato:

CONNECTION_NAME:
  class: CLASS_NAME
  file:  ABSOLUTE_PATH_TO_FILE

note

Il file di configurazione databases.yml è salvato nella cache come file PHP; il processo è gestito automaticamente dalla classe sfDatabaseConfigHandler.

tip

La configurazione del database può anche essere configurata utilizzando il task database:configure. Questo task aggiorna il file databases.yml in base ai parametri che gli vengono passati.

Propel

Configurazione predefinita:

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

I seguenti parametri possono essere personalizzati nella sezione param:

Chiave Descrizione Valore predefinito
classname La classe adattatore per Propel PropelPDO
dsn Il DSN PDO (obbligatorio) -
username Nome utente per il database -
password Password per il database -
pooling Abilita il pooling true
encoding L'insieme di caratteri predefinito utf8
persistent Per creare connessioni persistenti false
options Un insieme di opzioni per Propel -

Doctrine

Configurazione predefinita:

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

I seguenti parametri possono essere personalizzati sotto la sezione param:

Chiave Descrizione Valore predefinito
dsn Il DSN PDO (obbligatorio) -
username Nome utente per il database -
password Password per il database -
encoding L'insieme di caratteri predefinito utf8
attributes Un insieme di attributi per Doctrine -

I seguenti attributi possono essere personalizzati sotto la sezione attributes:

Chiave Descrizione Valore predefinito
quote_identifier Per mettere gli identificatori tra virgolette false
use_native_enum Per usare l'enum nativo false
validate Per abilitare la validazione dei dati true
idxname_format Formato per i nomi degli indici %s_idx
seqname_format Formato per i nomi delle sequenze %s_seq
tblname_format Formato per i nomi delle tabelle %s