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

Il file di configurazione databases.yml

Symfony version
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 insieme di parametri (param) usati per configurare l'oggetto database:

NOME_CONNESSIONE:
  class: NOME_CLASSE
  param: { ARRAY DI PARAMETRI }

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:

NOME_CONNESSIONE:
  class: NOME_CLASSE
  file:  PERCORSO_ASSOLUTO_DEL_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
      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=##NOME_PROGETTO##;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 -
debug Opzoni per la classe DebugPDO n/a

La voce debug definisce tutte le opzioni descritte nella documentazione di Propel. Il seguente YAML mostra le opzioni disponibili:

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

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

This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.