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.